- コード性能を精密に測定するために開発された、10KB以下の超軽量ベンチマークツール
- Web APIベースで動作し、
process.hrtime または performance.now を活用した 正確なタイミング測定 をサポート
- Node.js、Deno、Bun など、さまざまな JavaScriptランタイム環境で実行可能
- 統計ベースの分析機能 を提供: 平均、標準偏差、誤差範囲、分散、パーセンタイルなど、レイテンシー(latency) および スループット(throughput) の計算をサポート
- 並行性(concurrency) 実行モード:
task 単位または bench 単位で並列実行可能で、threshold オプションで最大同時実行数を制御
- イベントベース構造 により拡張可能:
Bench と Task クラスが EventTarget を継承し、cycle、abort などのイベントリスナーを登録可能
- 非同期関数の自動検出:
AsyncFunction または Promise の返却有無を検査して、自動的に async モードを設定
- 結果の可視化と変換:
bench.table() メソッドで console.table() 出力形式に変換し、ユーザー定義の Converter 関数 で出力形式をカスタマイズ可能
retainSamples 設定時は生のサンプルデータをそのまま保持し、カスタム分析、グラフ可視化、結果のエクスポートなどに活用可能
- 高精度なタイムスタンププロバイダー(timestamp provider) を選択可能
- デフォルトは
performance.now()
hrtimeNow、bunNanoseconds、auto など、ランタイム別の最適化オプションをサポート
- ユーザー定義の TimestampProvider インターフェース を実装可能
- AbortSignalベースの中断制御 をサポート
- ベンチマーク全体または個別タスク単位で 実行中断(abort) が可能
- 中断時に
abort イベントが発生し、状態フラグ (task.result.aborted) を設定
- 外部ライブラリ依存のない単一パッケージ構成により、高速な初期化と実行速度を実現
- Benchmark.js、mitata、tatami-ng、Bema と比べて、より小さくシンプルでWeb API親和的 な設計が特徴
1件のコメント
もうこういうものが必要なのかなと思います。AIがその時々に合ったパフォーマンス測定用のスクリプトをかなりうまく書いてくれるので……