Bun.js 0.3.0全新发布:内存占用大幅降低,性能优化再升级

发表时间: 2022-12-08 14:59

还记得那个性能爆表、完虐 Node.js 和 Deno 的新锐 JS 运行时 Bun.js 吗?不记得的话我帮你回忆一下:

Bun is a fast all-in-one JavaScript runtime

Bundle, transpile, install, and run JavaScript & TypeScript projects — all in Bun. Bun is a new JavaScript runtime with a native bundler, transpiler, task runner, and npm client built-in.

简单说:Bun 是一个全新 JavaScript 和 TypeScript 运行时,自带原生打包、转换编译、安装、运行工具,堪称 all-in-one 全能选手,最关键的是速度贼拉快,具体看下面几个图。

服务端渲染 React 对比

websocket 连接性能对比

sqlite 载入巨量数据性能对比

可以看出,相比 nodejs 和 deno 确实是碾压一般的存在。

2022.12.7 作者 Ashcon Partovi 发布了最新的 0.3.0 版,新版有哪些提升呢?我来用人话为大家总结一下,放心,咱不玩那种恶心的机翻。

1、内存占用大幅降低!

这张图被作者当作此次发版的主题图

可以看出,在工作负荷状态(处理完成 200K 的 http 请求)下,Bun 的最新版仅占用 30M 内存,不仅相比之前版本有了大幅度进步,跟 nodejs 和 deno 的横向对比中也再次获得压倒性优势!

2、稳定性提升

  • 通过优化 event loop 与 gc 的协调调度,实现了 3 到 5 倍的运行内存节约(原文如此,实际上我认为表示“减少”和“降低”的时候是不应该用“倍”来表达的)。
  • 美化了 console.log 来帮助提升 debug 体验

更漂亮易读的 console 输出

  • 通过修复 text encoding 的 bug 并换用 simdutf 实现了 3 倍性能提升的 TextEncoder.encodeInto() 函数
  • 兼容了更多的运行环境(Amazon Linux 2、Vecel、Cloudflare Pages 等)
  • 还有很多细节提升看下图

这就不用翻译了吧

3、Node.js 兼容性提升

目前兼容的 Node.js APIs 如下:

这也不用翻译吧

4、其它新增或提升的 APIs 一览

更多细节内容,请自行移步官网查看。

Bun.js 会不会大获成功?欢迎大家评论区讨论!