コマンドラインインターフェース
コマンドラインインターフェース(easybenchコマンド)
複数のベンチマークを一度に実行するには、easybenchコマンドを使用します:
easybench [オプション] [パス]
- デフォルトでは、
benchmarksディレクトリ内のbench_*.pyという名前のファイルを実行します - ベンチマークファイルを含むディレクトリまたは特定のベンチマークファイルを指定できます
- ベンチマークスクリプトは以下の規則に従う必要があります:
- クラスベースのベンチマーク:
EasyBench基本クラスを継承するクラスは自動的に検出され、含まれます - 関数ベースのベンチマーク:
bench_で始まる関数名のものがベンチマーク関数として認識されます
- クラスベースのベンチマーク:
コマンドオプション
easybench [--trials N] [--loops-per-trial N] [--warmups N] [--memory] [--memory-unit UNIT] [--sort-by METRIC] [--reverse] [--no-color] [--show-output] [--time-unit UNIT] [--no-progress] [--progress] [--include PATTERN] [--exclude PATTERN] [--include-files PATTERN] [--exclude-files PATTERN] [--no-time] [--clip-outliers VALUE] [--reporters REPORTERS [REPORTERS ...]] [パス]
--trials N:試行数(デフォルト:5)--loops-per-trial N:精度向上のために試行ごとに実行するループ数--warmups N:計測前に実行するウォームアップ試行数--memory:メモリ測定を有効化--memory-unit UNIT:結果表示用のメモリ単位(B/KB/MB/GB)--sort-by METRIC:並べ替え基準(def/avg/min/max/avg_memory/max_memory)--reverse:結果を降順に並べ替え--no-color:カラー出力を無効化--show-output:関数の戻り値を表示--time-unit UNIT:結果表示用の時間単位(s/ms/us/ns/m)--no-progress:ベンチマーク中のプログレスバーを無効化--progress:ベンチマーク中のプログレスバーを有効化--include PATTERN:一致するベンチマーク関数のみを含める正規表現パターン--exclude PATTERN:一致するベンチマーク関数を除外する正規表現パターン--include-files PATTERN:一致するベンチマークファイルのみを含める正規表現パターン--exclude-files PATTERN:一致するベンチマークファイルを除外する正規表現パターン--no-time:時間測定レポートを無効化--clip-outliers VALUE: 指定した割合の最大側の値を切り詰める (0以上1未満)--reporters REPORTERS [REPORTERS ...]: 使用するレポーター(複数指定可能)。例:console、simple、boxplot、violinplot、lineplot、histplot、barplot、または.csv/.json拡張子を持つファイルパスパス:ベンチマークファイルを含むディレクトリまたは特定のベンチマークファイル(デフォルト:"benchmarks")
関数ベースのベンチマーク例
コマンドラインから実行する関数ベースのベンチマークの例:
# ファイル名: benchmarks/bench_list_operations.py
from easybench import fixture
@fixture(scope="trial")
def big_list():
return list(range(1_000_000))
def bench_insert_first(big_list):
"""リストの先頭に要素を挿入"""
big_list.insert(0, 123)
def bench_pop_first(big_list):
"""リストの先頭から要素を削除"""
big_list.pop(0)
このファイルをbenchmarksフォルダに保存し、easybenchコマンドを実行して両方の関数をベンチマークし、結果を比較します:
easybench --trials 10 --memory
特定のベンチマークファイルを直接実行することもできます:
easybench --trials 10 --memory benchmarks/bench_list_operations.py