初看 Bun:它真的比 Node.js 和 Deno 快 3 倍吗?

2025-06-08

初看 Bun:它真的比 Node.js 和 Deno 快 3 倍吗?

不管你喜欢还是讨厌,JavaScript 工具领域再次成为人们热议的话题。

最新:Bun。一个专注于性能和一体化(运行时、打包器、包管理器、转译器)的全新 JS 运行时。你可以把它想象成 Node.js,加上 NPM、加上 tsc 和 rollup——但速度更快。

它宣称服务器端渲染速度比 React 快 3 倍,这可不是闹着玩的。所以,我们对它进行了测试。

什么让 Bun 如此快?

Bun 团队将他们的表现归功于以下几点:

  • 花费大量时间进行分析、基准测试和优化
  • 使用Zig 语言,因为它具有低级内存控制和缺乏隐藏的控制流
  • 使用Safari 内部的引擎JavaScript Core,而不是Chromium 内部的引擎V8 。

那么,它更快吗?

我们选择深入研究Bun.sh的这一具体主张:

Bun 的网站声称其 React 服务器渲染速度提高了 3 倍

乍一看,哇!但后来我想象我的 Next.js 网站突然速度提高了 3 倍……坦白说,我觉得这很难理解。

但谁知道呢,所以我开始深入研究。首先映入眼帘的是基准测试的源代码。简而言之……这并不是最“真实”的 React 应用服务器渲染示例。

这

我不知道你是怎么想的,但每次我为一个真正的应用进行服务器渲染 React 时,都会有很多事情要做。一个更大的组件树,包含业务逻辑、库、props、state、context 等等。

因此我制作了一个更加完善的 React 应用程序,并决定运行一些基准测试。

方法论

我在Mitosis中创建了一个仪表板应用程序源代码)。它具有完整的组件树、业务逻辑、依赖项、使用 props 和 state 以及其他典型的 React 特性。

选择 Mitosis 是为了让我们能够为许多框架生成代码,以比较它们在这个更面向“现实世界”的应用程序中的性能,以及变体 - 例如 React 与 Preact、CSS 与 styled-components 等。

我使用 Node.js、Deno 和 Bun 创建了一个基础应用。为了更真实地复制 Bun 的结果,请注意我们使用了他们的自定义分支react-dom/server

我起初想避免这种情况,但 Jarred(Bun 的创建者)很好地证明了平台特定实现react-dom/server已经存在(例如浏览器 vs. Node),并且很可能会继续存在。他们打算最终将其合并到 React 核心中,因此我们谨慎乐观地认为这即将实现。

然后,我们使用autocannon来测量每个运行时服务器渲染我们的 React 应用程序的吞吐量(每秒请求数)。

那么,结果如何?

在我的上运行2.6 GHz 6-Core Intel Core i7,使用 Bun 版本0.1.10、Deno 版本1.25.0、Node.js 版本,16.14.0我的结果是:



┌─────────┬──────────────────┬─────┬─────┬─────┬───────┬─────────┐
│ (index) │       name       │ 1%  │ 50% │ 99% │  Avg  │ Std Dev │
├─────────┼──────────────────┼─────┼─────┼─────┼───────┼─────────┤
│    0    │ 'react-ssr-bun'  │ 500 │ 669 │ 718 │ 650.8 │  71.7   │
│    1    │ 'react-ssr-deno' │ 550 │ 600 │ 630 │  601  │  20.89  │
│    2    │ 'react-ssr-node' │ 267 │ 375 │ 394 │ 366.5 │  35.04  │
└─────────┴──────────────────┴─────┴─────┴─────┴───────┴─────────┘


Enter fullscreen mode Exit fullscreen mode

查看基准测试的完整来源(如果您发现可以改进方法的方法,请告诉我)。

其中,我们发现 Bun 每秒处理的请求数比 Node.js 多 75%,而 Deno 介于两者之间(更接近 Bun 而不是 Node)。

不得不说,我当时真的惊呆了。没错,速度确实没快 3 倍,但实际上比之前快了不少。

那么,我现在应该换用 Bun 吗?

嗯,可能不行。它目前处于测试阶段,尚未准备好投入生产(很多用户报告说它存在一些明显的 bug)。但它可能值得你关注。

我不得不说,使用 Bun CLI 感觉特别快捷

使用 Bun CLI 的 Gif

安装过程特别快,我不得不再三确认它是否真的发生了。

对我来说,这是 Bun 更令人兴奋的领域之一,考虑到根据我的经验,即使是 Yarn 对于中型到大型项目来说也可能很慢。

不过,这只是我个人的结果和观点。大家觉得怎么样?

鏂囩珷鏉ユ簮锛�https://dev.to/builderio/a-first-look-at-bun-is-it-really-3x-faster-than-nodejs-and-deno-45od
PREV
因关闭而死亡(以及 Qwik 如何解决这个问题)
NEXT
我们如何构建一个使用 Rust Trust 进行动态数据的 Swift 应用程序