8

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

现在我想知道Linux平台上是否有一些免费工具可以做同样的事情。我想我需要基于采样的分析工具。VTune 很好但很贵……我听说过 gprof 和 valgrind。但似乎 gprof 需要检测程序(所以我们必须重建程序),而 valgrind 会大大减慢程序的执行速度。(从 valgrind 的介绍来看,Cachegrind 运行的程序比正常慢约 20--100 倍,而我需要分析的 Callgrind 是基于 Cachegrind 的)

对于分析,我只需要弄清楚函数调用的执行时间,这样我就可以找出性能下降发生在哪里。实际上,我不需要 Cachegrind 提供的许多低级分析信息......

4

4 回答 4

5

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

于 2010-03-05T02:37:59.917 回答
1

同意 Paul 的观点,我认为 Zoom 可能是您可以支付的最好的 Linux 分析器。

但是,对于真正的结果,我依赖于这种简单的方法,这种方法在我发明分析器之前就一直在使用。

于 2010-03-05T12:09:54.927 回答
1

Performance Counters for Linux是可用于内核 2.6.31 及更高版本的新工具;它比 valgrind 或 OProfile 的侵入性更小(对程序和整个系统而言)。

于 2010-03-05T18:34:09.947 回答
0

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

于 2010-03-05T08:37:23.693 回答