ハッシュ関数の速度と統計的品質を測定するテストスイート。テスト済みの実装を網羅した大規模な比較表も掲載しています。
google/benchmark
ユニットテストに似た構成で、小さなコード片の実行時間を計測するマイクロベンチマーク用C++ライブラリ。
- スター
- 10,499
- フォーク
- 1,825
- 未解決の Issue
- 174
- 最終コミット
- 昨日
これは何?
Google Benchmarkは、小さなコード片のパフォーマンスを測定するためのC++ライブラリです。テスト対象のコードをループ内で実行する関数を作成し、BENCHMARKマクロで登録すると、計測時間や反復回数の管理、結果の出力をライブラリが行います。APIの構成はGoogle Testに似ているため、既存のユニットテストにも自然に組み込めます。
このライブラリはCMakeでビルドできるほか、Bazel経由で利用したり、システムパッケージとしてインストールしてfind_packageで読み込んだりできます。ビルドにはC++17対応のツールチェーンが必要ですが、ライブラリのAPIはC++11のコードから利用できます。また、Pythonバインディングや、ベンチマーク結果を扱うための追加ツールも提供しています。
アプリケーション全体ではなく、実装同士の比較や特定の関数のパフォーマンス追跡を必要とするC++開発者向けです。
主な機能
- 01シンプルなBENCHMARKマクロとループベースのAPIでベンチマーク関数を登録できます。
- 02CMakeでビルドでき、Bazelやfind_packageと連携できます。
- 03サニタイザーやリンク時最適化のビルドオプションに対応しています。
- 04Pythonバインディングと、追加ツールに関するドキュメントを提供します。
- 05生成コードを確認するためのアセンブリテストに関するドキュメントを提供します。
ユースケース
- 同じ関数のC++実装を2つ比較し、どちらが速いか確認する。
- ユニットテストと並行して、ホットパスのパフォーマンス回帰チェックを追加する。
- 個々のアルゴリズムやデータ構造の操作にかかるコストを測定する。
クイックスタート
- 1
ライブラリのリポジトリをクローンする
git clone https://github.com/google/benchmark.git - 2
ライブラリのルートディレクトリに移動する
cd benchmark - 3
CMakeでビルドシステムのファイルを生成し、依存関係をダウンロードする
cmake -DBENCHMARK_DOWNLOAD_DEPENDENCIES=on -DCMAKE_BUILD_TYPE=Release -S . -B "build" - 4
ライブラリをビルドする
cmake --build "build" --config Release
使う前に知っておきたいこと
- ライブラリのビルドには、C++17対応のコンパイラと標準ライブラリが必要です。
- 実験的なv2ブランチには安定性の保証がなく、APIは予告なく変更される可能性があります。
収録されている特集
トピック
よくある質問
- benchmark とは?
- ユニットテストに似た構成で、小さなコード片の実行時間を計測するマイクロベンチマーク用C++ライブラリ。 Google Benchmarkは、小さなコード片のパフォーマンスを測定するためのC++ライブラリです。テスト対象のコードをループ内で実行する関数を作成し、BENCHMARKマクロで登録すると、計測時間や反復回数の管理、結果の出力をライブラリが行います。APIの構成はGoogle Testに似ているため、既存のユニットテストにも自然に組み込めます。
- benchmark は無料で使えますか?ライセンスは?
- benchmark は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- benchmark は今もメンテナンスされていますか?
- 活発にメンテナンス中。benchmark の最終コミットは 2026年11月6日 です。
- benchmark は何に使えますか?
- 同じ関数のC++実装を2つ比較し、どちらが速いか確認する。 ユニットテストと並行して、ホットパスのパフォーマンス回帰チェックを追加する。 個々のアルゴリズムやデータ構造の操作にかかるコストを測定する。
- benchmark のインストール方法は?
- ライブラリのリポジトリをクローンする: git clone https://github.com/google/benchmark.git ライブラリのルートディレクトリに移動する: cd benchmark CMakeでビルドシステムのファイルを生成し、依存関係をダウンロードする: cmake -DBENCHMARK_DOWNLOAD_DEPENDENCIES=on -DCMAKE_BUILD_TYPE=Release -S . -B "build" ライブラリをビルドする: cmake --build "build" --config Release
- benchmark はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/google/benchmark
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Meta内部で広く使われている、Boostやstdを補完するFacebook製のオープンソースC++20コアライブラリ。
シンプルなアサーション、BDDスタイルのマクロ、基本的なマイクロベンチマーク機能を備えた、C++向けのヘッダーベースのユニットテストフレームワーク。
Claude Code、Codex CLI、CopilotなどのAIコーディングツールに、Qt C++、QML、テスト、設計の慣習を教える公式Qtスキル集。
統計分析やウォームアップ実行に対応し、結果をCSV、JSON、Markdown、AsciiDocに出力できるコマンドラインベンチマークツール。
.NETライブラリ。C#のメソッドを、ウォームアップや統計情報、結果レポート付きの再現可能なベンチマークに変換できます。