基本上我想在遍历数据包转储文件时测量时间。查看谷歌基准文档,我附带了:
BENCHMARK_DEFINE_F(MyFixture, FooTest)(benchmark::State& state) {
for (auto _ : state) {
// read
if (readPacket() == NO_MORE_PACKET) {
break;
}
if (!isPacketOfConsideration()) {
continue;
}
// some extra bookkeeping code if required
time t1{};
processPacket();
time t2{};
state.SetIterationTime(t2 - t1);
}
}
BENCHMARK_REGISTER_F(MyFixture, Footest)->UseManualTime();
以上是一个伪代码,它使用手动时间来测量和设置迭代时间。问题基本上是:
- 我可以
break
从谷歌基准的 for 循环中了解状态吗? - 我可以
continue
在不设置迭代时间的情况下对状态进行谷歌基准测试吗?