首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >性能分析指令

性能分析指令
EN

Stack Overflow用户
提问于 2009-07-12 15:16:25
回答 6查看 1.9K关注 0票数 2

我想在我的代码中计算几条cpu指令。例如,我想知道我的代码执行了多少加法,多少乘法,多少浮点运算,多少分支。我目前在Linux下使用gprof来分析我的c++代码,但它只给出了对我的函数的调用次数,并且我手动估计了指令的数量。有没有什么工具可以帮我解决这个问题?也许是一些虚拟机?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-07-12 15:39:35

您可以使用ValgrindCallgrind--dump-instr=yes标志来实现这一点

票数 3
EN

Stack Overflow用户

发布于 2009-07-12 17:07:37

这是一个一般性的建议,而不是特定于Linux的:您应该对CPU周期感兴趣。忘掉作为性能度量的指令数量吧。一条指令的成本可能与其他10条指令的成本相同,所以它不会告诉你任何事情。

您应该关注CPU周期,以及多线程环境中线程进入睡眠状态(“切换/输出”)的时间,这将让您了解等待I/O、DB等完成的时间以及它对CPU特权时间的影响。

票数 5
EN

Stack Overflow用户

发布于 2009-07-12 15:19:58

如果您确实需要计算指令数,那么最好生成汇编程序,然后将输出传递给智能grep等效项。对于gcc,请尝试使用-S开关。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1116213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档