谷歌基准定制主

时间:2015-12-21 18:18:05

标签: c++ benchmarking

我希望在基准测试开始与Google的基准库一起运行之前调用一个自定义主函数。所以我可以设置好几件事。我搜索了很多,但我找不到任何东西。我应该手动修改宏吗?或者只是使用我的main函数并自己初始化基准测试。这会以任何方式影响库初始化吗?有没有其他方法可以不要求我修改那个宏或复制它的内容?

git push -f ...

benchmark\benchmark_api.h

1 个答案:

答案 0 :(得分:5)

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;