Turbopack 公布性能基准测试,Vite 创建者尤雨溪再度发声


Vercel 公司上周在 Next.js Conf 大会上发布了 Next.js 13,同时宣布了最新的开源项目:Turbopack。Turbopack 是面向 JavaScript 和 TypeScript 优化的增量打包工具和构建系统,采用 Rust 编写,声称是 Webpack 的继任者。

其实 Turbopack 正是出自 Webpack 作者 Tobias Koppers 之手,这是他去年加入 Vercel 之后所主导的核心项目。Tobias 深度参与了 Turbopack 的开发。

官方在宣传 Turbopack 时强调了其速度之快——号称热更新速度比 Webpack 快 700 倍比 Vite 快 10 倍;冷启动速度比 Webpack 快 5 倍。这是因为 Turbopack 在打包时仅引入所需的最少资源,因此冷启动时间非常快。Turbopack 称在包含 3,000 个模块的应用程序中,其冷启动时间为 1.8 秒,而 Vite 需要 11.4 秒,Webpack 需要 16.5 秒。

此外,根据 Turbopack 的官方解释,它基于一个用 Rust 编写的增量计算引擎 Turbo,Turbo 可实现细分到函数粒度的结果缓存、支持内存缓存,未来还将有持久化缓存和远程缓存,以及支持按需编译,尽量减少计算量。点此查看关于 Turbo 引擎的详细文档

Turbopack 声称热更新速度比 Vite 快 10 倍,但由于在发布时 Turbopack 没有为这些对比数据提供测试基准,Vue.js 和 Vite 的创建者尤雨溪便亲自创建了测试基准来比较 Vite 和 Turbopack 在 HMR(模块热加载)方面的性能差异,并将测试方法和数据公开在 GitHub 仓库中 (https://github.com/yyx990803/vite-vs-next-turbo-hmr)。

最终的测试结果显示,Turbopack 的热加载速度确实比 Vite 快,但远远没有 10 倍的差距。尤雨溪承认了两者的差距,同时希望 Vercel 公司能提供更透明的基准测试,并在营销过程中使用更准确的表达。

就在今天,Turbopack 公布了性能基准测试方法,并将他们的基准测试结果提供给公众进行验证。如需运行基准测试,查看 Turbopack 基准测试文档。

下图是 Vite 与 Turbopack 的 HMR 性能测试对比。Turbopack 表示,当应用程序的模块数量增加到 30k 以上时,Turbopack  的 HMR 速度比 Vite 快 10 倍。而且随着模块数量的增加,差距也更明显——当模块数量超过 50k 时,Turbopack 比 Vite 快 20 倍。

对于 Turbopack 迟来的性能基准测试,尤雨溪再度发声,并说道:“Turbopack 真的比 Vite 快 10 倍吗?”

尤雨溪在阅读 Turbopack 的基准测试后发现,他和 Turbopack 的测试方法和环境存在较大差异,比如 Vite 使用默认的、基于 Babel 的 React 插件,没有使用 RSC,而在 Next.js 中默认启用了 RSC。在这种前提下,这种性能比较缺乏了公平的场景。甚至在小数点的取舍时,Turbopack 都选择了对自己有利的方法——Turbopack 的 15ms 四舍五入为 0.01s,而 Vite 的 87ms 则四舍五入为 0.09s。

尤雨溪认为,开源软件的竞争应该建立在开放的沟通公平的比较相互尊重的基础上。所以当他看到 Vercel 使用了精心挑选、未经同行评审、存在误导的数据来进行营销时,感到失望和担忧,因为这种场景通常只在商业竞争中发生。


相關推薦

2024-03-26

(SPA)进行站点内的后续导航。尤雨溪指出,这种模式为性能提供了最佳平衡:提供快速的初始加载、快速的加载后导航以及高效交互性。

2023-09-24

世同堂,凭什么开发 30 岁就要被干掉? Vue.js 和 Vite 的创建者尤雨溪在最近的一次访谈中,谈到了自己成为独立开源开发人员的历程;重点介绍了向全职开源工作的过渡、Vue.js 的成长以及他对未来的期望。 在分享了成为一

2023-01-09

输出,与现有的 virtual DOM0-based output 相比,它具有更高的性能、使用更少的内存并且需要更少的运行时支持代码。目前,Vapor Mode 还尚处于早期阶段。 更多详情可查看博客全文。

2023-06-17

立开源开发者、开源前端框架 Vue.js 和构建工具 Vite 作者尤雨溪发微博表示,已入驻国内“爱发电”平台(界面也是用 Vue 写的),以尝试扩宽国内的 Vue 赞助渠道。 Vue 和 Vite 是纯粹的独立开源项目,不依附于任何大厂,靠用

2022-01-23

间进行切换,以及许多新的深入章节。新文档本身的网站性能也非常优秀——我们将在不久后的另一篇博文中详细探讨一下。 版本切换细节 下面是我们所说的“新的默认版本”的具体细节。此外,请阅读可能需要采取的措

2022-12-08

前端框架 Vue 的周 npm 下载量激增十倍,以至于 Vue 创始人尤雨溪发推解释:“我也不知道谁搞出来的,请搞出这事的人赶紧修复吧,这样会搞得统计数据毫无意义。” 从 NPM Trends 页面上可以看到,上上周 (11 月 27 日)的 vue n

2022-10-26

的客户端 JS。 Layouts React Server Components Streaming Turbopack (alpha):速度提高 700 倍的基于 Rust 的 Webpack 替代品。 新的 next/image (stable):native browser 延迟加载速度更快。 新的@next/font(beta):具有零布局偏移的自动自

2022-08-13

队会在近期切换到之前测试过的 Gitee 部署提升国内访问性能。 最后顺道说明一下:只有 *.vuejs.org 域名下的文档才是官方文档,官方中文文档的地址是 https://cn.vuejs.org。为了确保跟实际最新发布的版本同步,请切记认

2022-09-20

如下 特征 使用 vi.mock 时提供有用的信息  #2047 基准:仅模式 #2039 Bug修复 将 outputFile 移动到基准测试,允许 --reporter 进行基准测试  #2037 cli : 转发节点 wasm 标志 #2041 覆盖范围:istanbul-reports支持projectRoot  &

2022-10-11

能。 这个主要版本全方面改进了工具,除了改进 UX、性能、包大小,还发布了 Plugin API v1,以及重构了架构使核心代码与框架无关。 下面看一下重要变化。 功能更新 为 Vite 和 Nuxt 3 Preview 实现了Goto Code 和Highlight Selection Do

2023-05-06

动服务器渲染和代码拆分 数据的获取由开发者决定 Turbopack (Beta) Turbopack 是正在测试和稳定的新捆绑程序,它有助于在你开发 Next.js 应用程序(通过 next dev --turbo )和不久后的生产构建( next build --turbo )中加快本地迭代的

2023-10-30

开发者的开发和部署体验。 Next.js 14 主要变化: Turbopack: App & 页面路由通过了 5000 项测试 本地服务器启动速度提升 53% 使用 Fast Refresh 进行代码更新的速度提升 94% Server Actions (Stable): 渐进式的增强突变

2023-03-12

。 去年 Vercel 公司也开源了一款基于 Rust 的打包工具:Turbopack。Turbopack 是面向 JavaScript 和 TypeScript 优化的增量打包工具和构建系统,采用 Rust 编写,声称是 Webpack 的继任者,也是以“高性能”作为卖点。 Rspack 开发团队也表

2023-10-25

宝 AI 时代 雷军刚刚再度发表长文预热小米澎湃 OS,正式公布了完整系统架构。 据介绍,从架构设计之初,小米就明确了四个目标: 第一,实现单端性能表现最强; 第二,AI 赋能,成为整个生态的“智能大脑”,能够