查看原文
其他

Zig编写的 “全家桶” JavaScript 运行时Bun,性能完爆Node.js和Deno

出品 | OSC开源社区(ID:oschina2013)
Bun 是采用 Zig 语言编写的高性能 “全家桶” JavaScript 运行时,官方称其为 "all-in-one JavaScript runtime"。
所谓 "all in one",是因为 Bun 提供了打包、转译、安装和运行 JavaScript & TypeScript 项目的功能,内置原生打包器 (native bundler)、转译器、task runner、npm 客户端,以及 fetchWebSocket等 Web API。
Bun 的 HTTP 服务器基于 Request 和 Response 等 Web 标准:
// http.jsexport default {
port: 3000,
fetch(request) { return new Response("Welcome to Bun!");
},
};
Bun 完全从零开始构建,对标的项目是 Node.js 和 Deno 这类现代化的 JavaScript 运行时。其官网展示的性能测试结果也是和 Node.js 以及 Deno 进行对比。
▲ 服务器端渲染(每秒的 HTTP 请求数)
▲ 加载大型数据表(每秒的平均请求数)
由上面的性能对比图可见,Bun 可谓是完爆 Node.js 和 Deno。不过作者并没有详细解释为什么 Bun 会这么快,仅表示自己花了大量的时间进行分析、基准测试和优化,以及采用 Zig 编写 —— 与之对比的 Node.js 和 Deno 分别基于 C++ 以及 Rust。
Zig 是一门系统级编程语言,专为稳定性、可维护性和性能而设计,追求替代 C 语言在系统编程上的最佳地位。
此外,Node.js 和 Deno 使用的是 V8 JavaScript 引擎,Bun 使用的则是 JavaScriptCore 引擎,不同的引擎也会产生不同的性能。
作者表示他一年前就已经开始创建 Bun,近日才发布 Beta 测试版。由于存在内存泄露和崩溃等问题,不建议在生产环境部署使用。
相关链接:https://bun.sh/

往期精彩



微软发力Linux,从红帽挖走Systemd作者

中国厂商宣布全球首款面向开发者的RISC-V笔记本电脑

Java性能基准测试:从OpenJDK 8到OpenJDK 19



这里有最新开源资讯、软件更新、技术干货等内容

点这里 ↓↓↓ 记得 关注✔ 标星⭐ 哦~

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存