首页    新闻    小组    威客    人才    下载    博客    代码贴    在线编程    论坛
Zig 编写的“全家桶” JavaScript 运行时 Bun,性能完爆 Node.js 和 Deno
2022年7月9日 12:30 | 阅读 1139 次

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.js
export 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 测试版。由于存在内存泄露和崩溃等问题,不建议在生产环境部署使用。

(文/开源中国)    




评论 (0)
游客请输入验证码
最新评论
0
0
收藏