c++ - 谷歌基准测试自定​​义主要

标签 c++ benchmarking

我想在基准测试开始使用 Google 的基准测试库运行之前调用自定义主函数。这样我就可以设置几件事。我已经搜索了很多,但找不到任何东西。我应该简单地手动修改宏吗?或者简单地使用我的主要功能并自己初始化基准测试。这会以任何方式影响库初始化吗?是否有另一种方法不需要我修改该宏或复制它的内容?

基准\benchmark_api.h

// Helper macro to create a main routine in a test that runs the benchmarks
#define BENCHMARK_MAIN()                   \
  int main(int argc, char** argv) {        \
    ::benchmark::Initialize(&argc, argv);  \
    ::benchmark::RunSpecifiedBenchmarks(); \
  }

最佳答案

BENCHMARK_MAIN() 只是一个辅助宏,所以您应该能够像这样定义您自己的 main() 版本:

int main(int argc, char** argv)
{
   your_custom_init();
   ::benchmark::Initialize(&argc, argv);
   ::benchmark::RunSpecifiedBenchmarks();
}

编辑:您还可以定义全局对象并在其构造函数中执行自定义初始化。我通常这样做,例如使用输入数据初始化全局数组:

int data[10];

class MyInit
{
public:
    MyInit()
    {
        for (int n = 0; n < 10; ++n)
            data[n] = n;
    }
};

MyInit my_init;

关于c++ - 谷歌基准测试自定​​义主要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34401965/

相关文章:

正则表达式库基准测试

c++ - 使用套接字编程的奇怪 HTTP 响应

c++ - 在 opencv2.4.5 中使用 createButton(Qt gui 功能)段错误

c++ - C API函数的风格

memory - 如何对函数的内存使用情况进行基准测试?

c - 在 openMP 中,如何确保线程在继续之前同步?

linux - fio benchmark 延迟说明

c++ - 如何在 https://quick-bench.com 上对 fmt::format API 进行基准测试

c++ - VS 2013 自动支架完成

c++ - 与指向继承方法的模板化函数指针一起使用的模板化方法的问题