V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zhy0216
V2EX  ›  问与答

bun 为什么这么快

  •  
  •   zhy0216 · 2023-09-08 20:06:09 +08:00 · 2097 次点击
    这是一个创建于 469 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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 还短?
    5 条回复    2023-09-16 11:01:28 +08:00
    zjsxwc
        1
    zjsxwc  
       2023-09-08 20:18:54 +08:00 via Android
    zig 写的 bun ,到现在了还在苦于修复 segfault 导致的 crash ,github 里一堆 issue 处理不了,手动管理就是不可靠
    xlsepiphone
        2
    xlsepiphone  
       2023-09-08 20:29:53 +08:00
    光快没用啊。。。
    Leviathann
        3
    Leviathann  
       2023-09-08 20:33:59 +08:00   ❤️ 2
    fastjson:你就说快不快把
    yyfearth
        4
    yyfearth  
       2023-09-09 01:11:40 +08:00
    选择了 JavaScriptCore 因为 bun 团队比较重视启动时间 V8 的启动时间慢 另外 JIT 虽然执行重复的任务快 但是启动时间和首次运行时间慢

    如果 Bun 代替 Node 做一些工具链的工作 启动时间快是一个优势
    作为服务器 开发的时候启动时间就还好 不过貌似因为其他的优势 可以比 Node 快
    chuck1in
        5
    chuck1in  
       2023-09-16 11:01:28 +08:00
    @zjsxwc 所以现在 1.0 版本的 bun 实际上还是很多问题吗。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2886 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 09:22 · PVG 17:22 · LAX 01:22 · JFK 04:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.