Repolode
google

google/benchmark

一个 C++ 微基准测试库,用于对代码片段计时,写法与单元测试相似。

Star
10,499
Fork
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 注册基准函数。
  • 02支持 CMake 构建,并可与 Bazel 及 find_package 集成。
  • 03支持开启 sanitizer 和链接时优化等构建选项。
  • 04提供 Python 绑定及额外的工具文档。
  • 05提供汇编测试文档,便于检查生成的代码。

适用场景

  • 对同一函数的两种 C++ 实现进行性能对比。
  • 在单元测试旁边为热点代码路径添加性能回归检查。
  • 测量单个算法或数据结构操作的开销。

快速上手

  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++ 实现进行性能对比。 在单元测试旁边为热点代码路径添加性能回归检查。 测量单个算法或数据结构操作的开销。
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

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目