Atom 开发团队如何提升性能?
本文介绍了 Atom 开发者如何提升这款编辑器的性能,相当于 Atom 团队写的一篇 2017 的年终总结。
- Atom 使用 JS 编写,求快求更强大的扩展,但相对的也更容易遇到性能问题。他们使用了 V8 引擎的新特性:custom startup snapshots,它可以让一些 Atom 的启动时间转换到编译时,其中最重要的提升可能是堆中的对象依赖图也能在编译时就构建好。相应的,这项改进引入了一些规约,例如启动时不能搞 DOM 操作,所以他们重构了不少代码。
- 打字延迟不能忍啊。他们的做法是引入跟 React 有点像的库 etch:搞 DOM 操作的时候渲染依然没啥问题。另外,对批量文字变更做优化。
- 用 C++ 写扩展做大文件的缓存加载,数据结构选用 Piece Table。
衍生思考:性能优化万变不离其宗:用空间换时间,写 C 扩展