/bench 目录中找到。
测量时间
要精确测量时间,Bun 提供了两个运行时 API 函数:- Web 标准的
performance.now()函数 Bun.nanoseconds()与performance.now()类似,不同之处在于它返回自应用程序启动以来的纳秒时间。您可以使用performance.timeOrigin将其转换为 Unix 时间戳。
基准测试工具
在编写自己的基准测试时,选择正确的工具非常重要。- 对于微基准测试,一个优秀的通用工具是
mitata。 - 对于负载测试,您必须使用至少与
Bun.serve()一样快的 HTTP 基准测试工具,否则结果会出现偏差。一些流行的基于 Node.js 的基准测试工具(如autocannon)不够快。我们推荐以下之一: - 对于基准测试脚本或 CLI 命令,我们推荐
hyperfine。
测量内存使用情况
Bun 有两个堆。一个堆用于 JavaScript 运行时,另一个堆用于其他所有内容。JavaScript 堆统计
bun:jsc 模块公开了一些用于测量内存使用的函数:
查看示例统计数据
查看示例统计数据
bun:jsc 模块获取堆快照,然后使用 Safari 或 WebKit GTK 开发工具查看。要生成堆快照:
heap.json 文件
- 打开开发工具
- 点击”时间线”
- 点击左侧菜单中的”JavaScript 分配”。在点击铅笔图标显示所有时间线之前,它可能不可见
- 点击”导入”并选择您的堆快照 JSON


Web 调试器 还提供时间线功能,允许您跟踪和检查正在调试会话的内存使用情况。
本地堆统计
Bun 为另一个堆使用 mimalloc。要报告非 JavaScript 内存使用的摘要,请设置MIMALLOC_SHOW_STATS=1 环境变量,统计信息将在退出时打印。
terminal
CPU 分析
使用--cpu-prof 标志分析 JavaScript 执行以识别性能瓶颈。
terminal
.cpuprofile 文件,您可以在 Chrome 开发工具(性能标签 → 加载配置文件)或 VS Code 的 CPU 分析器中打开。
选项
terminal
| 标志 | 描述 |
|---|---|
--cpu-prof | 启用分析 |
--cpu-prof-name <filename> | 设置输出文件名 |
--cpu-prof-dir <dir> | 设置输出目录 |