优化了 undo 和 redo 时的效率