应用程序工作流程如下:
init();
while(packet.read()) {
if (filterpacket(packet))
process(packet); // function to benchmark.
}
在一个完整的应用程序运行过程中,我需要测量process(packet)
的时间。在Google基准测试中单独调用process(packet)
无效,因为流程会更改一些内部数据结构,这会影响下一个调用process(packet)
的时间。为每个内部状态制作固定装置似乎也违反直觉。
我该如何使用Google基准?
我知道我可以简单地制作一些ifdefs / flags并制作应用程序版本来测量process(packet)
所花费的时间,但这会违反Google基准测试的目的。我process(packet)
的预期时间太短,约为200ns。