bun 为什么这么快

2023-09-08 20:06:09 +08:00
 zhy0216
https://bun.sh/
一个 js 的运行时 和 nodejs 对拼的项目
给我印象最深的就是速度快
我也是看到下面这个结果才引起我的注意
https://bun.sh/docs/cli/test#performance
Running 266 React SSR tests faster than Jest can print its version number.

然后我就去看 bun 为什么这么快
分析了下有 3 点
1. 选择了 zig ,zig 甚至会为了速度放弃安全性
2. 选择了 https://github.com/uNetworking/uWebSockets 所以下载包会很快 这个库在网络框架这块都在前列
3. 选择了 JavaScriptCore 这点很奇怪 因为最快的运行时不是 v8 吗? chrome 就是嫌 JavaScriptCore 才换 v8 的。 我开始也想不通 后来看到一个评论 就是 v8 确实快 但做复杂的 jit 也需要时间 而我们开发的代码的往往只需要一次执行 所以往往运行时间比 jit 还短?
2034 次点击
所在节点    问与答
5 条回复
zjsxwc
2023-09-08 20:18:54 +08:00
zig 写的 bun ,到现在了还在苦于修复 segfault 导致的 crash ,github 里一堆 issue 处理不了,手动管理就是不可靠
xlsepiphone
2023-09-08 20:29:53 +08:00
光快没用啊。。。
Leviathann
2023-09-08 20:33:59 +08:00
fastjson:你就说快不快把
yyfearth
2023-09-09 01:11:40 +08:00
选择了 JavaScriptCore 因为 bun 团队比较重视启动时间 V8 的启动时间慢 另外 JIT 虽然执行重复的任务快 但是启动时间和首次运行时间慢

如果 Bun 代替 Node 做一些工具链的工作 启动时间快是一个优势
作为服务器 开发的时候启动时间就还好 不过貌似因为其他的优势 可以比 Node 快
chuck1in
2023-09-16 11:01:28 +08:00
@zjsxwc 所以现在 1.0 版本的 bun 实际上还是很多问题吗。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/972134

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX