統計分析やウォームアップ実行に対応し、結果をCSV、JSON、Markdown、AsciiDocに出力できるコマンドラインベンチマークツール。
tinylibs/tinybench
複数のJavaScriptランタイムで動作する、シンプルで軽量な依存関係のないJavaScriptベンチマークライブラリ。
- スター
- 2,385
- フォーク
- 60
- 未解決の Issue
- 14
- 最終コミット
- 6 時間前
これは何?
Tinybenchは、JavaScript関数のパフォーマンスを測定する小さなライブラリです。Benchインスタンスを作成して名前付きのタスクを追加し、実行すると、平均値、中央値、標準偏差、誤差範囲、パーセンタイルなどのレイテンシとスループットの統計を取得できます。Web APIをベースにしており、計測にはprocess.hrtimeまたはperformance.nowを使うため、複数のJavaScriptランタイムで動作します。
タスクは同期・非同期のどちらにも対応し、非同期関数は自動的に検出されます。タスクごと、またはタスク間で並行実行を有効にでき、cycleやwarningなどのEvent互換イベントを発行します。タイマーの選択、任意でのタイマーオーバーヘッド補正、サンプルの保持、AbortSignalによるキャンセルなどをオプションで設定できます。結果はログ出力ではなくデータとして公開され、bench.table()を使うとconsole.table()向けの出力を生成できます。
このパッケージに依存関係はなく、npmで配布されています。
主な機能
- 01パーセンタイルや誤差範囲を含む、レイテンシとスループットの統計分析。
- 02非同期処理の自動検出に対応した、同期・非同期タスクのサポート。
- 03タスクの反復処理またはタスク自体を並行実行するための並行実行モード。
- 04cycleイベントやタイマー飽和の警告に対応したEventTarget互換イベント。
- 05タイムスタンププロバイダーの選択と、任意でのタイマーオーバーヘッド補正。
- 06benchレベルとタスクレベルの両方で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
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
fasthttpを使ったGo製のHTTP(S)負荷テストCLI。リアルタイムのターミナル表示とWebチャートに対応。
CPU、メモリ、非同期処理、SQL、HTTP、I/Oのボトルネックを計測し、PrometheusやGrafanaにエクスポートできるRustプロファイラ。
LLM、VLM、AIGCモデルのベンチマーク評価に加え、推論性能の負荷テストや結果のダッシュボード表示にも対応する、カスタマイズ可能なフレームワーク。
Pythonコード、ネイティブ拡張、インタープリターのメモリ割り当てを追跡し、複数形式のレポートを生成するPython用メモリプロファイラーです。
コードを変更せずに、不要な再レンダリングを引き起こすコンポーネントを自動検出してハイライトするReactパフォーマンスツール。