クイックスタート
easybenchでベンチマークを行う方法は4種類あります:
-
@benchデコレータfrom easybench import bench # @benchを関数パラメータと共に追加 @bench(item=123, big_list=lambda: list(range(1_000_000))) def insert_first(item, big_list): big_list.insert(0, item)Tip
各試行ごとに新しいデータが必要な場合は、そのデータを返す関数やラムダをパラメータで指定します。
(上記の例ではlambda: list(range(1_000_000))のように) -
EasyBenchクラスfrom easybench import EasyBench, BenchConfig class BenchListOperation(EasyBench): # ベンチマーク設定 bench_config = BenchConfig( trials=10, memory=True, sort_by="avg" ) # 各試行のセットアップ def setup_trial(self): self.big_list = list(range(1_000_000)) # ベンチマークメソッド(bench_で始まる必要があります) def bench_insert_first(self): self.big_list.insert(0, 123) # 複数のベンチマークメソッドを定義できます def bench_pop_first(self): self.big_list.pop(0) if __name__ == "__main__": # ベンチマークを実行 BenchListOperation().bench() -
easybenchコマンドbenchmarksディレクトリを作成-
bench_*.pyスクリプトをディレクトリに配置:from easybench import fixture # 各試行用のフィクスチャ @fixture(scope="trial") def big_list(): return list(range(1_000_000)) # ベンチマーク関数(bench_で始まる必要があります) def bench_insert_first(big_list): big_list.insert(0, 123) # 複数のベンチマーク関数を定義できます def bench_pop_first(big_list): big_list.pop(0) -
easybenchコマンドを実行easybench --trials 10 --memory --sort-by avg
-
%%easybenchマジックコマンド(Jupyter Notebook)-
拡張機能を読み込む
%load_ext easybench -
セル内のコードをベンチマーク
%%easybench --trials=3 --memory result = [] for i in range(1_000_000): result.append(i)
-
ベンチマーク結果の例:
-
単一ベンチマーク
Benchmark Results (5 trials): Function Avg Time (s) Min Time (s) Max Time (s) -------------------------------------------------------- insert_first 0.001568 0.001071 0.003265 -
複数ベンチマーク

-
ボックスプロットによる可視化

-
バイオリンプロットによる可視化

-
ラインプロットによる可視化

-
ヒストグラムによる可視化

-
バープロットによる可視化
