.NETライブラリ。C#のメソッドを、ウォームアップや統計情報、結果レポート付きの再現可能なベンチマークに変換できます。
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
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 の数値は毎日更新されます。
関連プロジェクト
Python関数の各ソース行にかかる時間を表示する、行単位のプロファイラー。
Webアプリケーションなどの負荷テストと性能測定に使える、オープンソースのJavaアプリケーション。
fasthttpを基盤とする、Go製のクロスプラットフォームなHTTP(S)ベンチマーク・負荷テスト用コマンドラインツールです。
gRPCサービスのベンチマークや負荷テストに使えるCLIツール。並行数、リクエストレート、出力形式を設定できます。
Elasticsearchのマクロベンチマークフレームワーク。クラスターを構築してベンチマークを実行し、結果を比較します。