Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我怎样才能知道在C/C+;中的每一行上花费了多少时间+;密码?_C++_C_Profiling - Fatal编程技术网

C++ 我怎样才能知道在C/C+;中的每一行上花费了多少时间+;密码?

C++ 我怎样才能知道在C/C+;中的每一行上花费了多少时间+;密码?,c++,c,profiling,C++,C,Profiling,我试图找到一个分析工具,通过它我可以发现,在C/C++程序中,每行代码花费了多少时间。我主要使用gcc在Linux平台(Ubuntu、Gentoo、SL)上工作。我使用gprof,但有时我需要“每行”信息 有什么建议吗?谢谢大家! 是您的最佳选择,它是完全免费的,并且可以在windows和linux上运行,尽管它主要用于AMD CPU,因此非AMD CPU不会获得基于MSR的评测选项。在Windows下,它还可以很好地集成VisualStudio2008和2010 对于非特定于供应商的免费分析器

我试图找到一个分析工具,通过它我可以发现,在C/C++程序中,每行代码花费了多少时间。我主要使用gcc在Linux平台(Ubuntu、Gentoo、SL)上工作。我使用gprof,但有时我需要“每行”信息

有什么建议吗?谢谢大家!

是您的最佳选择,它是完全免费的,并且可以在windows和linux上运行,尽管它主要用于AMD CPU,因此非AMD CPU不会获得基于MSR的评测选项。在Windows下,它还可以很好地集成VisualStudio2008和2010

对于非特定于供应商的免费分析器,您可以尝试,这也是开源的。

在linux上您可以使用。这是一个基于示例的探查器,几乎可以在任何平台上运行,并支持性能监视寄存器(如果可用)。在x86上,它可以与AMD和Intel一起使用

您可以将其作为独立程序使用,它将为您提供一个带注释的源代码,但eclipse有一个插件(linuxtools),它可以很好地集成到IDE中。

它的作用是在墙上时钟时间采集堆栈样本

那么任何函数或代码行负责的时间百分比就是它出现的样本的百分比。 例如,如果一行代码位于堆栈样本的30%上,并且您可以避免执行它,那么总执行时间将减少30%


无论是I/O、递归、竞争进程、交换,还是所有让许多分析器感到困惑的事情,这都是正确的。

在GCC中,您可以使用“-pg”编译并使用
gprof
。这不完全是“每行”,而是相当接近于这一点。哪一个是你的平台?@Kerrak:我忘了提到,我使用gprof,但有时它必须是“每行”。@rotoglup:相应地编辑了这篇文章。也许你应该告诉我们,有一次你需要每行分析,而
gprof
是不够的。根据我的经验,在99%需要如此详细的信息才能发现性能问题的情况下,他们很可能在更大范围内做错了什么…@drhirsch:正如你从我们之前的谈话中所知道的,Zoom也不容易找到一些东西,但随着分析人员的发展,它正在做所有正确的事情,IMHO。