首页 > 解决方案 > 如何在使用谷歌基准运行的一个完整应用程序中对一项功能进行基准测试?

问题描述

应用程序工作流程是这样的:

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。

标签: c++performancebenchmarkinggoogle-benchmark

解决方案


推荐阅读