Repolode
google

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. 1

    ライブラリのリポジトリをクローンする

    git clone https://github.com/google/benchmark.git
  2. 2

    ライブラリのルートディレクトリに移動する

    cd benchmark
  3. 3

    CMakeでビルドシステムのファイルを生成し、依存関係をダウンロードする

    cmake -DBENCHMARK_DOWNLOAD_DEPENDENCIES=on -DCMAKE_BUILD_TYPE=Release -S . -B "build"
  4. 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 の数値は毎日更新されます。

関連プロジェクト