Repolode
ionelmc

ionelmc/pytest-benchmark

pytestのテストスイートでPython関数の実行時間を計測する、ベンチマーク用fixtureを提供するプラグイン。

スター
1,459
フォーク
139
未解決の Issue
125
最終コミット
6 日前

これは何?

pytest-benchmarkはpytestにbenchmark fixtureを追加します。関数をfixtureに渡すと、選択したタイマーに合わせて調整したラウンドに分けて関数を繰り返し実行し、計測結果をpytestのサマリー出力に表示します。

fixtureには位置引数またはキーワード引数を渡せます。また、pedanticモードではセットアップ関数、イテレーション数、ラウンド数を明示的に制御できます。過去の実行結果との比較や、計測時間の分布を示すヒストグラムの生成にも対応しています。

pytestと統合されているため、ベンチマークは通常のテスト関数として記述でき、いつものpytestコマンドで実行できます。このプラグインが計測するのは個々の関数なので、より大きなコードブロックを測るには関数でラップする必要があります。

主な機能

  • 01pytestのテスト内で関数呼び出しの時間を計測するbenchmark fixtureを提供します。
  • 02選択したタイマーに合わせて調整したラウンドに計測をまとめます。
  • 03セットアップ、イテレーション数、ラウンド数を指定できるpedanticモードを備えています。
  • 04過去のベンチマーク実行結果との比較に対応しています。
  • 05計測結果のヒストグラムを生成できます。

ユースケース

  • コミット間でPython関数のパフォーマンス回帰を追跡する。
  • テストスイート内で同じ関数の2つの実装を比較する。
  • 既存のpytestワークフローにベンチマークを組み込み、ライブラリのホットパスを計測する。

クイックスタート

  1. 1

    PyPIからプラグインをインストールします

    pip install pytest-benchmark

使う前に知っておきたいこと

  • ベンチマークの対象は単一の関数のみです。そのため、プログラム全体やコードブロックを対象にするには、ラッパー関数が必要です。

トピック

よくある質問

pytest-benchmark とは?
pytestのテストスイートでPython関数の実行時間を計測する、ベンチマーク用fixtureを提供するプラグイン。 pytest-benchmarkはpytestにbenchmark fixtureを追加します。関数をfixtureに渡すと、選択したタイマーに合わせて調整したラウンドに分けて関数を繰り返し実行し、計測結果をpytestのサマリー出力に表示します。
pytest-benchmark は無料で使えますか?ライセンスは?
pytest-benchmark は BSD-2-Clause ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
pytest-benchmark は今もメンテナンスされていますか?
活発にメンテナンス中。pytest-benchmark の最終コミットは 2026年11月1日 です。
pytest-benchmark は何に使えますか?
コミット間でPython関数のパフォーマンス回帰を追跡する。 テストスイート内で同じ関数の2つの実装を比較する。 既存のpytestワークフローにベンチマークを組み込み、ライブラリのホットパスを計測する。
pytest-benchmark のインストール方法は?
PyPIからプラグインをインストールします: pip install pytest-benchmark
pytest-benchmark はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/ionelmc/pytest-benchmark

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト