导读 Bun v0.8.1 版本发布。这一版在 0.8.0 发布一天后发布,重点主要是修复了多个存在的问题和 bug。

首先,新版本解决了一个很关键的问题:在处理格式错误的版本名时,bun install 会崩溃。这意味着如果用户输入 "^0.0.2rc1" 等无效版本标识符,系统会停止运行。在 Bun v0.8.1 中,开发者团队成功地修复了这个问题,使得 bun install 面对这类输入不会再崩溃。这对于用户来说,无疑增加了操作的稳定性和可靠性,提高了整体的用户体验。

此外,另一个比较严重的问题也得到了修复。原本,打包器会在知道运行时会失败且位于 try/catch 块内的 require() 调用时自动内联,这在打包使用可选依赖的代码时非常有用。然而这个特性被误启用,导致在某些情况下可能出现运行错误。现在这个问题已经得到了修正,大大提高了代码的运行效率和稳定性。

除此之外,Bun v0.8.1 还修复了其他几个 bug,包括 node:http 中关于代理 URL 的 bug、bun install 处理过期 package.json 脚本的问题,以及 bun --inspect 中源代码映射 bug。这些改进都有助于提升 Bun 的整体性能和用户体验。

在引入新功能方面,v0.8.1 版本新增了对 Unix 域套接字的支持。这项新功能让你可以将套接字指向文件系统上的文件,而非网络主机 / 端口。这在运行只能从同一台机器访问的服务器时十分有用,如在某些容器或代理环境下。通过这种方式,可以有效地提高数据传输的效率和安全性。

const server = Bun.serve({
  unix: "/tmp/my-socket.sock", // <-- new option
  fetch(req){
    console.log(req.url);
    return new Response("Hello world!");
  }
});

console.log(`Listening on unix:///tmp/my-socket.sock!`);

性能优化是这次更新的另一个重要内容。在 v0.8.0 中,存在一个性能退化的问题,事件循环调度工作得不够好,造成读取请求体时未能及时处理微任务队列。但是在 v0.8.1 中,这个问题得到了修复。测试结果显示,新版本处理请求的速度比 v0.8.0 快了 2.8 倍,这对于用户来说,将感受到明显的速度提升。

内存管理也是 Bun v0.8.1 版本进行改进的地方。原先,Headers 和 Blob 并未向垃圾收集器报告它们的大小,导致当 Headers 或 Blob 足够大时,可能会导致垃圾收集器没有如期运行。现在,Bun 会向垃圾收集器报告 Headers 和 Blob 的大小,并且每次调用 fetch() 都会向垃圾收集器报告所用内存。这一改变将有助于更好地管理内存资源,避免因内存使用过大而影响 Bun 的运行效率。

最后,值得一提的是,Bun 1.0 计划在 9 月 7 日发布。这一新的重大版本将会带来更多功能的改进和更新,让我们一起期待它的到来!

原文来自:https://www.oschina.net/news/255433/bun-v0-8-1

本文地址:https://www.linuxprobe.com/ben-linux-class.html编辑:向金平,审核员:清蒸github

Linux命令大全:https://www.linuxcool.com/

Linux系统大全:https://www.linuxdown.com/

红帽认证RHCE考试心得:https://www.rhce.net/