Tinybench - 軽量JavaScriptベンチマークライブラリ
(github.com/tinylibs)- コード性能を精密に測定するために開発された、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がその時々に合ったパフォーマンス測定用のスクリプトをかなりうまく書いてくれるので……