一款命令行基准测试工具,支持统计分析、预热运行,并可导出为 CSV、JSON、Markdown 等格式。
tinylibs/tinybench
一个简单、轻量、无依赖的 JavaScript 基准测试库,可在多种 JavaScript 运行时中使用。
- Star
- 2,385
- Fork
- 60
- 未关闭 Issue
- 14
- 最近提交
- 4小时前
这是什么?
Tinybench 是一个用于衡量 JavaScript 函数性能的小型库。通过实例化 Bench 类并添加具名任务,即可运行并获得延迟和吞吐量统计,包括平均值、中位数、标准差、误差范围和百分位数等。它基于 Web API 实现,计时使用 process.hrtime 或 performance.now,可在多种 JavaScript 运行时中运行。
任务函数可以是同步或异步的,异步函数会被自动识别。库支持按任务或跨任务的并发模式,并以兼容 Event 的方式派发 cycle、warning 等事件。配置项涵盖计时器选择、可选的计时开销校正、样本保留以及基于 AbortSignal 的取消。结果以数据形式返回而非直接打印,bench.table() 可生成适用于 console.table() 的输出。
该包没有任何依赖,通过 npm 发布。
核心功能
- 01对延迟和吞吐量进行统计分析,包括百分位数和误差范围。
- 02同时支持同步与异步任务,并自动识别异步函数。
- 03提供并发模式,可并行执行任务迭代或多个任务。
- 04以兼容 EventTarget 的方式派发 cycle 和计时器饱和警告事件。
- 05可选择时间戳提供者,并支持计时开销校正。
- 06在 bench 和 task 两个层级支持 AbortSignal 中止。
适用场景
- 比较同一功能不同 JavaScript 实现的性能差异。
- 测量异步操作的耗时,例如 I/O 相关代码路径。
- 在测试套件或 CI 任务中以编程方式读取基准结果。
- 在 Node.js、Bun 等不同 JavaScript 运行时之间进行微基准测试。
快速上手
- 1
使用 npm 将 tinybench 安装为开发依赖
npm install -D tinybench - 2
在 JavaScript 或 TypeScript 文件中导入 Bench,添加任务并调用 run()
使用前须知
- 对于接近计时器精度的工作,README 建议使用 overriddenDuration,因为计时开销可能使结果产生偏差。
- 默认不输出任何结果,需要自行提取并打印统计数据。
标签
常见问题
- tinybench 是什么?
- 一个简单、轻量、无依赖的 JavaScript 基准测试库,可在多种 JavaScript 运行时中使用。 Tinybench 是一个用于衡量 JavaScript 函数性能的小型库。通过实例化 Bench 类并添加具名任务,即可运行并获得延迟和吞吐量统计,包括平均值、中位数、标准差、误差范围和百分位数等。它基于 Web API 实现,计时使用 process.hrtime 或 performance.now,可在多种 JavaScript 运行时中运行。
- tinybench 可以免费使用吗?用的什么许可证?
- tinybench 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- tinybench 还在维护吗?
- 活跃维护中。tinybench 最近一次提交是在 2026年10月22日。
- tinybench 适合用来做什么?
- 比较同一功能不同 JavaScript 实现的性能差异。 测量异步操作的耗时,例如 I/O 相关代码路径。 在测试套件或 CI 任务中以编程方式读取基准结果。 在 Node.js、Bun 等不同 JavaScript 运行时之间进行微基准测试。
- tinybench 怎么安装和运行?
- 使用 npm 将 tinybench 安装为开发依赖: npm install -D tinybench 在 JavaScript 或 TypeScript 文件中导入 Bench,添加任务并调用 run()
- 在哪里获取 tinybench?
- 源代码和安装说明在 GitHub 上:https://github.com/tinylibs/tinybench
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
基于 Go 的 HTTP(S) 压测命令行工具,提供终端实时显示和 Web 图表。
一个可定制的大模型评测框架,覆盖 LLM、VLM 和 AIGC 模型的基准评测与推理性能压测。
面向 Python 的内存分析器,可追踪 Python 代码、原生扩展及解释器自身的内存分配,并生成多种报告。
一款自动检测并高亮标记不必要重渲染组件的 React 性能工具,无需修改代码。
基于 SciPy 构建的 Python 机器学习库,提供分类、回归、聚类和模型选择等工具。