应用程序工作流程是这样的:
init();
while(packet.read()) {
if (filterpacket(packet))
process(packet); // function to benchmark.
}
在一个完整的应用程序运行过程中,我需要测量process(packet)
. 在谷歌基准测试中单独调用process(packet)
是行不通的,因为进程会改变一些内部数据结构,这会影响下一次process(packet)
调用的时间。为每个内部状态制作固定装置似乎也违反直觉。
我如何用谷歌基准做到这一点?
我知道我可以简单地制作一些 ifdefs/flags 并制作测量所用时间的应用程序版本,process(packet)
但这会违背谷歌基准测试的目的。我的预期时间process(packet)
太小了,大约 200ns。