Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.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
如何在不重建的情况下在Linux平台上评测程序?_Linux_Profiling_Valgrind - Fatal编程技术网

如何在不重建的情况下在Linux平台上评测程序?

如何在不重建的情况下在Linux平台上评测程序?,linux,profiling,valgrind,Linux,Profiling,Valgrind,我使用过两种评测工具(windows上的VTune和Solaris上的dbx(在sunstudio中))可以评测程序,而无需重新构建它们。在评测过程中,程序的运行速度与正常速度相同。这两项功能都为我节省了很多时间 现在我想知道Linux平台上是否有一些免费工具可以做同样的事情。我想我需要基于采样的分析工具。VTune很好,但是很贵。。。我听说过gprof和valgrind。但似乎gprof需要对程序进行仪器化(因此我们必须重建程序),valgrind将大大降低程序的执行速度。(从valgrind

我使用过两种评测工具(windows上的VTune和Solaris上的dbx(在sunstudio中))可以评测程序,而无需重新构建它们。在评测过程中,程序的运行速度与正常速度相同。这两项功能都为我节省了很多时间

现在我想知道Linux平台上是否有一些免费工具可以做同样的事情。我想我需要基于采样的分析工具。VTune很好,但是很贵。。。我听说过gprof和valgrind。但似乎gprof需要对程序进行仪器化(因此我们必须重建程序),valgrind将大大降低程序的执行速度。(从valgrind的介绍中可以看出,Cachegrind运行的程序比正常运行慢20-100倍,我需要分析的Callgrind是基于Cachegrind的)


对于评测,我只需要计算函数调用的执行时间,这样就可以找出性能下降的地方。实际上,我不需要像Cachegrind提供的那样需要很多低级的评测信息…

oprofile非常好,但是它可能很难设置。它也不需要您重建程序。

这是一个比oprofile更好的选择。如果你曾经使用过的话,它类似于MacOSX。这是商业版(199美元),但你可以从中免费试用。

同意Paul的观点,我认为Zoom可能是你能买到的最好的Linux分析器


然而,据我所知,在分析器发明之前,我就一直在使用它。

是一种可用于内核2.6.31及更高版本的新工具;与valgrind或OProfile相比,它对程序和整个系统的干扰更小。

是的。。。这似乎是我需要的。。但我认为它需要root帐户来设置,对吗?是的,它需要root帐户来设置。或者sudo,具体取决于sudoers文件的设置方式。我建议使用虚拟机,但在虚拟机中进行评测似乎不是一个好主意——在虚拟机下运行时的瓶颈可能与在物理机上运行时的瓶颈不同。我希望你的系统有根,明白了。在阅读了一些关于oprofiler的文档后,我了解到它需要内核来收集一些硬件计数器,以便能够快速地分析程序,因此需要根权限来配置。由于我使用的是一台公共机器,所以要获得root访问权限可能并不容易,并且分析将影响该机器的性能。所以我认为Valgrind可能是最好的选择。。。