426 - 《Umi Cli 提速》
发布于 2024年3月25日
背景是虽然我们内部已切换到 Mako 做构建,但上层框架 Bigfish/Umi 有大量的 Node 逻辑依旧比较慢,对于开发者来说,体感提升并没有很强烈,所以需要排查下 Umi Cli 的卡点问题并做出改进。
记录下我的排查步骤。
1、找典型项目。
需要多找几个,我找了 5 个,包含脚手架项目、大型和中型项目等。不同类型的项目会暴露出不同的卡点问题。
2、跑 benchmark 记录数据。
找个现状的数据,记录下来,方便修改后知道有多少提升。我是用 hyperfine 跑 setup 命令。umi 的 setup 命令剔除了 build,用来做非 build 性能验证非常合适。
$ hyperfine -w 1 --runs 10 './node_modules/path/to/bin/bigfish.js setup'
Time (mean ± σ): 10.647 s ± 0.318 s [User: 9.415 s, System: 1.838 s]
Range (min … max): 10.509 s … 11.549 s 10 runs
3、跑 node --cpu-prof + speedscope 。
方法在 424 - 《Node 性能优化(2)》 里有过说明,就不重复了,跑完传到 https://www.