c++ - 如何在使用谷歌基准运行的一个完整应用程序中对一项功能进行基准测试?
问题描述
应用程序工作流程是这样的:
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。
解决方案
推荐阅读
- django - 在 Django 中无需再次查询数据库即可获取 ForeignKey 字段的主键
- istio - ISTIO MIXER ADAPTER - 无法使 OPA 适配器与最简单的示例一起使用
- javascript - 如何将数组转换为对象和数组的嵌套数组?
- javascript - 为赛普拉斯期望断言设置超时
- python - 如何在另一个笔记本的相对路径中运行带有空间的 Jupyter Notebook?
- angular - 使用回调函数时输入属性未更新
- java - 主线程睡眠/中断如何在以下代码中工作
- ruby-on-rails - 获取以 [.] 开头或结尾的错误对象字段
- excel - 如何使用 excel 为特定部门生成特定日期(3 天、4-7 天、15 - 30 天)的数据计数
- python - 如何修复 TypeError:“NoneType”对象没有属性“__getitem__”