如何在没有重建的情况下在Linux平台上分析程序?

时间:2010-03-05 02:33:03

标签: linux profiling valgrind

我使用了两个分析工具(Windows上的VTune和Solaris上的dbx(在sunstudio中)),它可以在不重建的情况下对程序进行分析,在分析过程中,程序运行速度与正常情况相同。这两个功能都为我节省了很多时间。

现在我想知道Linux平台上是否有一些免费工具可以做同样的事情。我想我需要基于抽样的分析工具。 VTune很好但价格昂贵......我听说过gprof和valgrind。但似乎gprof需要对程序进行检测(因此我们必须重建程序)并且valgrind将会大大减慢程序执行速度。 (来自valgrind的介绍,Cachegrind运行程序比正常情况慢20到100倍,而我需要分析的Callgrind基于Cachegrind)

对于分析,我只需要弄清楚函数调用的执行时间,这样我就可以找出性能下降的位置。实际上我不像Cachegrind提供的那样需要很多低级别的分析信息......

4 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

与Paul保持一致,我认为Zoom可能是您可以支付的最佳Linux分析器。

然而,对于real results,我依赖this simple method,这是我在发明分析器之前一直在使用的。{/ p>

答案 2 :(得分:1)

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

答案 3 :(得分:0)

比oprofile更好的选项是Zoom。它类似于Mac OS X上的Shark,如果您曾经使用过它。这是商业广告(199美元),但您可以从www.rotateright.com获得免费试用。