前言
最近在做 electron 性能优化方面的工作,学习一下 vscode 在这方面的解决方案,在 youtube 上找到这个视频Visual Studio Code-The First Second,以下是视频对应的笔记。
性能优化根本原则
Measure and Monitor!
Chrome Performance
log
用log打点,记录下每个时间节点。
数据上报
数据上报,查看大盘均值。
低端机器
每天都会在低端机跑一边,确保vscode在1.8s以内启动,否则会发送报警。
分析
启动是类似瀑布流的串行,保证每个阶段尽可能短就可以确保整个流程的迅速。
Fast Code Loading
要做到快速加载代码,可以从以下方面入手。
- Bundle
Instead of 1000 files, we bundle it and create a single file.
- Minify 压缩代码,减小整体文件大小。优化规则来提高网站的性能。 它会合并多个CSS或者JavaScript文件,移除一些不必要的空格和注释,进行gzip压缩,并且会设置浏览器的缓存头。 www.cnblogs.com/videring/ar… ideas.byteridge.com/webpack-min…
- Cache v8.js.cn/blog/code-c… blog.csdn.net/szengtal/ar…
- Tree Shaking Copies all functions over that you are actually truly use.
webpack.docschina.org/guides/tree…
segmentfault.com/a/119000001… 这个需要实践下,是对lodash的tree shaking。
- Code Splitting
webpack.docschina.org/guides/code…
Lifecycle Phases
We didn't make anything faster, we just recordered things in a smart way that everything appears to be fast.
按照 lifycyle, state, priority加载,让整个加载流程看起来更快。
Perceived Performance
在UI和交互上及时的反馈。
Idle Callbacks
Multi Process
避免某个线程卡住整个流程,所以vscode创建多个线程,各司其责。