专栏名称: 前端大全
分享 Web 前端相关的技术文章、工具资源、精选课程、热点资讯
今天看啥  ›  专栏  ›  前端大全

每秒处理 129 万个请求!Bun.js 性能迎来大幅增长!

前端大全  · 公众号  · 前端  · 2024-09-06 11:50

主要观点总结

Bun v1.1.25版本发布,带来了一系列改进和优化。包括支持node:cluster API实现更高的吞吐量和利用率,支持V8公开C++ API使得某些软件包可以在Bun中正常工作,修复了node:http客户端实现中的bug导致S3上传速度提高5倍,独立可执行文件中的Worker支持以及WebAssembly在Windows上的优化等。

关键观点总结

关键观点1: 支持node:cluster API

Bun现在支持node:cluster API,可以在同一个端口上运行一组Bun workers,实现更高的吞吐量和利用率,尤其在拥有多个CPU核心的机器上,是生产环境中进行负载均衡的最佳选择。

关键观点2: 支持V8公开C++ API

Bun开始支持V8的公开C++ API,这使得像cpu-features这样的软件包可以在Bun中正常工作。这也是一项艰巨的工程,因为JavaScriptCore和V8以不同的方式表示JavaScript值。

关键观点3: 修复了node:http客户端实现中的bug

Bun修复了node:http客户端实现中的一个bug,导致上传到S3的速度提高了5倍。

关键观点4: 独立可执行文件中的Worker支持

Bun的单文件独立可执行文件现在支持绑定Worker和node:worker_threads,可以在编译独立可执行文件时,将多个文件作为独立的入口点进行打包。

关键观点5: Windows上的WebAssembly优化

Windows上的WebAssembly现在支持JavaScriptCore的优化即时编译器(JIT),称为OMGJIT。此外,Bun还修复了一些与node:net的连接问题,如调用destroy()关闭TCP连接后的事件循环问题。


文章预览

近期,Bun 发布了 v1.1.25 版本,并高调宣布在最新的性能测试中,每秒可以处理 129 万个 HTTP 请求,我们一起来看看这个版本究竟做了哪些改进吧。 node:cluster 支持 Bun 现在支持 node:cluster API。 通过使用这个 API,你可以在同一个端口上运行一组 Bun workers ,从而实现更高的吞吐量和利用率。对于拥有多个 CPU 核心的机器来说,这是在生产环境中进行负载均衡的最佳选择。 下面是一个工作原理的示例: 主要的 worker 会创建 n 个子 worker,一般数量与 CPU 核心数相同; 每个子 worker 都会监听相同的端口(使用 reusePort ); 传入的 HTTP 请求会在子 worker 之间进行负载均衡分配处理。 import  cluster  from   "node:cluster" ; import  http  from   "node:http" ; import  { cpus }  from   "node:os" ; import  process  from   "node:process" ; if  (cluster.isPrimary) {    console .log( `主进程  ${pro ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览