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

前端又开撕了:用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 进行的一些革命性的工作,极大地改善了开发人员的开发方式。”

Next.js 的成功也让前端领域更为活跃,其最大的竞争对手包括 Hydrogen(由 Shopify 开发的 SSR 框架)和 Remix。第二个在商业模式方面与 Next.js 非常相似,也是围绕开源技术开发,并于最近被 Shopify 收购,从而成功获得资金支持。

有资金支持的 Vercel,最近聘请了一些 JavaScript 界的知名人士——例如 Tobias Koppers(Webpack 的创建者)、Jared Palmer(Formik 和 Turborepo 的创建者)和 Rich Harris(Svelte 的创建者)。事实证明,Tobias Koppers 并不仅仅致力于优化 Webpack,他还参与了全新构建工具 Turbopack 的开发。

10 月 26 日,在旧金山举行的 Next.js Conf 22 会议上,Vercel 正式宣布推出 Turbopack。Vercel 声称 Turbopack 旨在成为 Webpack 的直接替代品,并在同一天给出了 Turbopack 的一些数据:“在大型应用中,展示出了 10 倍于 Vite 的速度,700 倍于 Webpack 的速度。在更大的应用中,差异更加巨大 —— 通常比 Vite 快 20 倍。而且启动速度飞快,在一个 3000 个模块的应用里,Turbopack 只花了 1.8 秒启动,Vite 花了 11.4 秒。”

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

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

Next.js 在 2016 年开始就在使用 Webpack, 可能是 Webpack 的最大用户。随后他们意识到 JavaScript 和 TypeScript 代码的数量增长如此之快,以至于超出了基于 JavaScript 的工具和架构的能力。于是 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 给出了冷启动和代码更新的测试结果。


也就是说,在 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。

截图源自:https://github.com/yyx990803/vite-vs-next-turbo-hmr/discussions/8

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

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

写在最后

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

另外,也有网友表示,探讨开源项目背后是否是 VC 资金支持的商业公司有些奇怪,毕竟我们从营利性公司那里也获得了很多不错的开源工具。

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

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

参考链接:

https://news.ycombinator.com/item?id=33415371

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

https://darkghosthunter.medium.com/vite-how-to-fail-on-killing-webpack-16eb1834593chttps://turbo.build/blog/turbopack-benchmarks

https://github.com/yyx990803/vite-vs-next-turbo-hmr/discussions/8

今日好文推荐

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

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

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

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

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
快1000倍!刚刚,中国憋出大招,外媒:拜登的如意算盘彻底失败了古人类DNA与重症新冠有关?2022诺奖得主Pääbo,竟是前诺奖得主私生子老了要多吃泡饃As COVID Rises, Chinese Turn to Black Market for Antiviral Drugs不嫁豪门,未婚无子,55岁王祖贤近照曝光惊呆众人,时代女神变成“买菜大妈”:女人不会这件事,衰老快10倍!With More People Getting Sick, China’s Restaurants Are Strugglin会议预告丨中欧气候合作论坛Europe-China Climate Collaboration ForumOBS Studio即将支持WebRTC,采用Rust实现那位用Rust重写数据库的创始人来复盘了:删除27万行C++代码,值吗?龙卷风健康快递 210毛泽东时代的一个重大战略决策以调试 Rust 的方式来学习 Rust | Linux 中国开撕了! 查尔斯1张照片, 惹哈里梅根暗黑复仇, 王室震怒直播预告丨中欧气候合作论坛Europe-China Climate Collaboration ForumSpring Boot+Netty+Websocket实现后台向前端推送信息老海归走后门Ousted Luckin Founder Charts Comeback With New Coffee Business【出租!Cambridge地区Chester St.|无忧精选公寓楼】免中介费,超值Studio户型,近哈佛和Tufts大学Pop!_OS COSMIC桌面使用Rust GUI库Iced取代GTK如何使用Rust语言设计并开发一个领域编程语言Webpack 创始人推出比 Webpack“快 700 倍”的 Turbopack,基于 Rust 编写Webpack 创始人推出比“快 700 倍”的 Turbopack,基于 Rust 编写In 2022, Students Are Struggling to Cope. So Are Their Teachers.提速40倍!bug更少了,我们用Rust重写了自家项目2022 Luxury Listings · Hurun Outstanding American Real EstateDinosaur Demise Started Millennia Before Asteroid Crash: Study恭喜Boston College学员斩获BlackRock(US)2023 Internship Offer!ASUS GeForce RTX 2060 6G Turbo Edition GDDR6荣耀笔记本限时最高直降600元,OS Turbo 加持,续航性能双强解放后,上海富豪在香港成功打天下(多图)A Top Archaeology Institute Struggles to Hire ArchaeologistsHow Academic Tracking Exacerbates Rural China’s Education GapsOpenStack 已死?最新报告显示 OpenStack 部署呈爆发式增长,整体规模超4000万尤雨溪回应:Vite 真的比 Turbopack 慢 10 倍?“我们的祖先到底是谁?为何智人胜出?”丨2022诺奖深入回答了这些问题。附Svante Pääbo趣闻
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。