335 - 《Mako 开发日志(2) - Benchmark 的秘密》

发布于 2023年8月16日

说说 Benchmark。Benchmark 是公平的吗?为啥各家的 Benchmark 里,自己通常都是最快的。昨天同事基于 https://github.com/farm-fe/performance-compare 加了 Mako 来跑和其他工具对比的 Benchmark,我草,Mako 好几项都第一,怎么回事?只有我们自己知道,Benchmark 的数据其实没那么准。

1、Benchmark 虽然看起来是公平的,主要看构建工具本身的性能,但具体做时也是有一些隐藏的小窍门的。这就是为啥都是对比 Vite 和 Turbopack,Vite 和 Turbopack 各自做的数据却是不同的。原因是对比的点可能不同,没有一个工具是六边形战士,哪哪都快,大家都有各自的优点和缺点,对比时出于人性考虑,会自然地突出自己的优点和对方的缺点。随便打开一个对比,除非是三方做,否则都存在有很大的主观因素。

2、构建的性能是多方面的,这个多方面甚至可以到很细,细到没做过构建工具的不太能想得到的那种。大的可能很多人都清楚,比如 dev 和 build 是不同的,冷启动和热启动是不同的,hmr 的 root 和 leaf 是不同的。细的比如 Tree Shaking、Code Splitting、SourceMap 方式、依赖的多少、项目源码的多少、依赖的种类,等等,都会影响构建性能。

3、以 Vite 为例,Vite dev 快,但 build 可能比 Webpack 还慢,所以看 Vite 宣传时应该是不会主打 build 数据的。比如 M

内容预览已结束

此内容需要会员权限。请先登录以查看完整内容。