You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Google Benchmark库时如何全局设置时间单位为毫秒并启用挂钟时间?

Google Benchmark全局配置默认时间单位与挂钟时间方案

支持全局配置,无需为每个基准测试单独指定参数,有两种常用实现方式:

方案1:代码侧全局配置(一次修改永久生效)

替换Google Benchmark默认提供的BENCHMARK_MAIN()宏,自定义主函数遍历所有已注册的基准测试用例批量配置即可,示例代码如下:

#include <benchmark/benchmark.h>

int main(int argc, char** argv) {
  benchmark::Initialize(&argc, argv);
  if (benchmark::ReportUnrecognizedArguments(argc, argv)) {
    return 1;
  }

  // 全局批量配置所有基准测试项
  for (auto* bench : benchmark::all_registered_benchmarks()) {
    bench->Unit(benchmark::kMillisecond); // 全局默认时间单位为毫秒
    bench->UseRealTime(); // 全局默认使用挂钟时间
  }

  benchmark::RunSpecifiedBenchmarks();
  benchmark::Shutdown();
  return 0;
}

注意:benchmark::all_registered_benchmarks() 接口从Google Benchmark v1.5.0版本开始提供,低于该版本可以升级到最新稳定版后使用。

该方案无需每次运行时额外传参,单个用例如果有特殊需求,单独注册时指定的配置优先级会高于全局配置,不会产生冲突。

方案2:运行时传参配置(无需修改代码)

如果不想改动现有代码,也可以在运行基准测试程序时通过命令行参数全局指定配置:

  • 指定全局时间单位为毫秒:添加参数 --benchmark_time_unit=ms
  • 全局启用挂钟时间:添加参数 --benchmark_use_real_time=true

完整运行示例:

./你的基准测试程序名 --benchmark_time_unit=ms --benchmark_use_real_time=true

内容的提问来源于stack exchange,提问作者ChrisZZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 01:36:04