前端又开撕了:用Rust写的Turbopack,比Vite快10倍?

2022-12-06 0 832

原副标题:后端又开撕了:用Rust写的Turbopack,比Vite快10倍?

重新整理 | Tina

10 月 26 日,Vercel 子公司正式宣布正式宣布宣布面世捷伊装箱辅助工具 Turbopack。Vercel 宣称这是 Webpack 的继任人,用 Rust 撰写,在小型应用应用领域中,展现出了 10 倍于 Vite、700 倍于 Webpack 的速率。为此,Vite 的贡献者提出了批评。

Vercel 正式发布新开放源码辅助工具 Turbopack

Vercel 是 Next.js 架构另一面的企业,也是紧紧围绕开放源码技术建立的资本金最实力雄厚的子公司之一。在过去的一两年里,该子公司通过 4 轮股权融资筹措了超过 3 万美元。该笔钱得到了较好的应用应用领域,现在 Next.js 已正式成为服务项目端 React 图形的“必选”软件系统。有鉴于 Next.js 架构的开放源码物理性质,该子公司提供的服务项目也招揽了愈来愈多的使用者。Github 计算机科学副总裁 Chiedo John 曾对新闻媒体表示“Vercel 进行的许多颠覆性的工作,很大地明显改善了合作开发者的Attichy。”

Next.js 的赢得成功也让后端应用领域更为活耀,其最大的竞争者包括 Hydrogen(由 Shopify 合作开发的 SSR 架构)和 Remix。第三个在盈利模式方面与 Next.js 十分相近,也是紧紧围绕开放源码技术合作开发,并于前段时间被 Shopify 全面收购,进而赢得成功赢得资本金全力支持。

有资本金全力支持的 Vercel,前段时间聘用了许多 Java 界的著名人士——比如 Tobias Koppers(Webpack 的创建人)、Jared Palmer(Formik 和 Turborepo 的创建人)和 Rich Harris(Svelte 的创建人)。在我看来,Tobias Koppers 并更为重要致力强化 Webpack,他还参予了崭新构筑辅助工具 Turbopack 的合作开发。

前端又开撕了:用Rust写的Turbopack,比Vite快10倍?

10 月 26 日,在美国纽约举办的 Next.js Conf 22 全会上,Vercel 正式宣布正式宣布宣布面世 Turbopack。Vercel 宣称 Turbopack 意在正式成为 Webpack 的间接代替品,并在同一时间得出了 Turbopack 的许多数据:“在小型应用应用领域中,展现出了 10 倍于 Vite 的速率,700 倍于 Webpack 的速率。在Villamblard的应用应用领域中,差别更为十分大 —— 一般来说比 Vite 快 20 倍。而且开启速率飞速,在一个 3000 个组件的应用应用领域里,Turbopack 只花了 1.8 秒开启,Vite 花了 11.4 秒。”

据报道,Webpack 创建人 Tobias Koppers 于 2021 年 4 月加入该子公司,牵头了该项目。Turbopack 是 Vercel 子公司之前许多工作的延续。在此之前,他们用基于 Rust 的 SWC 替换基于 Java 的转译器 Babel,速率提升了 17 倍。他们还替换了 Terser,压缩的速率提高了 6 倍,减少了加载时间和带宽的使用。所以,他们再次用 Rust 重写了 Webpack。

Vercel 表示,性能改进不仅是因为基于 Rust ,还在于“基于增量计算思想的架构”。该团队借鉴了谷歌 Bazel 构筑系统中的许多想法,该系统适用于小型项目。增量方法意味着避免做重复的工作,“如果你创建一个增量图,合作开发者在其中进行更改,只有受影响的图部分会被重新计算。”

Next.js 在 2016 年开始就在使用 Webpack, 可能是 Webpack 的最大使用者。随后他们意识到 Java 和 Type 代码的数量增长如此之快,以至于超出了基于 Java 的辅助工具和架构的能力。于是 Vercel 邀请 Koppers 加入进来一起改造 Webpack,“他带来了 10 年的专业知识,见证了这件事情的发展,”据 Vercel 首席执行官 Guillermo Rauch 介绍。

基准测试存在“不公平”的比较?

Turbopack 的出现,让业界一片叫好,毕竟这也是 Koppers 的“自我突破”,同时也让大家看到了 Rust 的十分大潜力。

对于“10 倍”和“700 倍”具体是怎么得来的,Vercel 于 10 月 31 日正式发布了一份详细的基准报告。报告中,他们表示自己创建了一个测试生成器,使应用应用领域程序具有可变数量的组件,并针对 Next.js 11、Next.js 12、Next.js 13 with Turbopack、Vite 得出了冷开启和代码更捷伊测试结果。

前端又开撕了:用Rust写的Turbopack,比Vite快10倍?

前端又开撕了:用Rust写的Turbopack,比Vite快10倍?

也就是说,在 Vercel 的测试中,基于 1000 个组件以及使用“默认设置”的情况下,Turbopack 的冷开启时间是 1.1s,Vite 是 4.8s;Turbopack 的代码更新是 15ms,Vite 是 87ms。在这个条件下,Turbopack 是 Vite 快 5.8 倍,而不是宣传上所说的“10 倍”。

同时,在基准测试中,Vercel 再次表示:

一旦应用应用领域程序扩展到 30k 组件以上, Turbopack HMR 比 Vite 快 10 倍。随着组件数量的增加,这个效果更好,显示 50k 组件以上的速率提高了 20 倍。对于具有超过 50k 个组件的小型应用应用领域程序,Turbopack HMR 比基于 Webpack 的 Next.js 11 快 700 倍。

对 Vercel 宣称“比 Vite 快 10 倍”的说法,Vite 的贡献者 Evan You 在 10 月 28 日也提出了批评。在 Vercel 正式发布了具体的测试条件和结果后,Evan 再次在 Github 上进行了驳斥,他认为 Vercel 测试存在许多瑕疵。其中一个是,双方使用了默认设置,对 Vite 来说也许不是最优解:Vite 使用了默认的、基于 Babel 的 React 插件,没有使用 RSC;另外还有小数点取舍的问题,Vercel 将 15ms 四舍五入成了 0.01s。

前端又开撕了:用Rust写的Turbopack,比Vite快10倍?

Vite 的贡献者认为这家“资本金实力雄厚”的子公司使用了“营销话术”,“令人失望”。在 Evan You 发表这些批评之后,Hacker News 和 Reddit 的网友评论很大一部分就都开始变为指责 Vercel 是在做“商业营销”。

前端又开撕了:用Rust写的Turbopack,比Vite快10倍?

回应 Evan You 在 Github 上的批评,Vercel 在基准测试文章里,承认了四舍五入的错误,并感谢他帮助指出问题。只是,Vercel 无视了 Evan 除此之外的所有说法。

写在最后

对于这场十分热闹的纷争,也有网友指出,在技术应用领域说“一个比另一个快多少倍”是一个常用的手法,比如 Mongo 曾宣称可以比 X SQL 数据库快 1000 倍、Bun 曾宣称比 Deno 快 3 倍。这些宣传都十分奏效,Mongo 和 Bun 也因此都得到了不少关注。

另外,也有网友表示,探讨开放源码项目另一面是否是 VC 资本金全力支持的商业子公司有些奇怪,毕竟我们从营利性子公司那里也赢得了很多不错的开放源码辅助工具。

紧紧围绕基准测试所做的辩论是必不可少的,可以让双方更好的用开放的方式得到改进。但更重要的是能让我们深入到构筑细节,拨开云雾,了解和关注技术应用领域的关键发展。

相信完成改进后的 Turbopack 会是一个重要的新构筑辅助工具,不仅使 Next.js 受益,而且使整个社区受益。

参考链接:

https://www.reddit.com/r/programming/comments/yj5act/is_turbopack_really_10x_faster_than_vite/

阿里巴巴开放源码下一代云原生网关Higress:基于Envoy,全力支持Nginx Ingress零成本快速迁移

马斯克整顿西方职场,Twitter员工突然进入“黑色星期五”:办公室关闭,裁员名单确认前不必上班

Envoy Gateway会正式成为网关现有格局的冲击者吗?| 专访Envoy创始人

每天中午都是一次“秒杀”,从 IT 视角看麦当劳中国数字化

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务