我正在尝试找到一个可以找到的分析工具,在C / C ++程序中每行代码花费了多少时间。我主要使用gcc在Linux平台(Ubuntu,Gentoo,SL)上工作。我使用gprof,但有时我需要“每行”信息。
有什么建议吗?谢谢!
答案 0 :(得分:2)
在Linux上,您可以使用oprofile。这是一个基于样本的分析器,几乎可以在任何平台上运行,并且如果可用,则支持性能监视寄存器。在x86上,它适用于AMD和英特尔。
您可以将它作为独立程序使用,它将为您提供带注释的源代码,但是有一个可用于eclipse的插件(linuxtools)可以很好地集成到IDE中。
答案 1 :(得分:1)
AMD CodeAnalyst是你最好的选择,它是完全免费的,它适用于Windows和Linux,虽然它主要用于AMD CPU,所以非AMD CPU不会获得基于MSR的分析选项。在Windows下,它还具有与Visual Studio 2008和Visual Studio的完美集成。 2010年也是如此。
对于非供应商特定的免费配置文件,您可以尝试very sleepy,这也恰好是开源的。
答案 2 :(得分:1)
Zoom所做的是在挂钟时间内采集堆栈样本。
然后,任何函数或代码行负责的时间百分比是它出现的样本的分数。 例如,如果一行代码占堆栈样本的30%,并且您可以避免执行它,那么总执行时间将减少30%
无论I / O,递归,竞争过程,交换,以及使许多分析器混淆的所有事情都是如此。