如何为Google Benchmark参数值自定义命名?
为Google Benchmark参数值自定义命名的方法
要实现将基准测试名称从数字后缀改为自定义名称,你可以利用Google Benchmark的Apply方法,结合Arg和Name来批量设置参数对应的名称。修改后的代码如下:
inline constexpr auto names = std::array{ "Alex", "Bob", "Charles" }; static void NameTest(benchmark::State& state) { const auto name = names[state.range(0)]; // 这里添加你的基准测试逻辑 } // 替换原有的DenseRange,通过Apply批量设置参数和名称 BENCHMARK(NameTest)->Apply([](benchmark::internal::Benchmark* b) { for (int i = 0; i < names.size(); ++i) { b->Arg(i)->Name(names[i]); } });
原理说明
Apply方法允许我们对基准测试实例进行批量配置,这里通过遍历names数组,为每个索引值创建对应的参数项。Arg(i)添加参数值i,Name(names[i])将该参数对应的测试名称后缀替换为自定义的字符串,最终生成NameTest/Alex、NameTest/Bob这类符合需求的名称。
内容的提问来源于stack exchange,提问作者Don Reba
相关产品推荐
相关产品推荐

