如何定期使用 PAPI 进行性能测量
我想使用 C 中的 PAPI api 分析我的应用程序的系统性能。一般结构是
-- 初始化PAPI
-- 初始化感兴趣的计数器
-- 启动计数器
-- 运行应用程序的主要逻辑
-- 结束计数器和读取值
我想定期读取计数器(例如每 1 秒一次),而不是在应用程序结束时读取最终值。 PAPI 输出是否给出程序执行结束时的聚合值,例如程序执行后 L2 缓存未命中的总数。另一个例子是在每个时间实例读取指令数,而不是在程序结束时读取指令总数。
I want to analyze system's performance for my application using PAPI api in C. The general structure is that
-- Initialize PAPI
-- Initialize counters of interest
-- start counters
-- run main logic of the application
-- end counters and read values
I want to read the counters periodically say every 1 second instead of reading the final values at the end of the application. does the PAPI output give the aggregate values at end of program execution like the total number of L2 cache misses after the program execution. Another example would be to read number of instructions at every time instance rather than total number of instructions at the end of the program.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您对此有什么想法吗?我正在做同样的事情,但我得到了奇怪的结果:我的计数器没有像我希望的那样频繁更新。
作为记录,以下是我测试过且运行良好的示例:
Did you get any ideas regarding this? I am doing the same thing, but I am getting strange results: my counters are not updated as often as I'd like them.
For the record, here is a sample that I tested and works well: