我的程序运行速度极慢。有没有办法使用valgrind找出我需要优化的功能? 感谢。
答案 0 :(得分:4)
您可以将callgrind工具用于valgrind,它应该是每个valgrind发行版的一部分。它在valgrind“虚拟机”中运行程序,并计算在每个函数/代码行中花费的指令数。 可视化结果的最佳UI是kcachegrind(KDE的一部分)。
优点:如果您的瓶颈受CPU限制,它可以很好地工作,因为它完全模拟了应用程序,因此如果CPU指令是您感兴趣的话,可以获得非常准确和详细的结果。如果没有,结果可能会失真。
缺点:它很慢(像valgrind)。如果您的问题是I / O限制,则执行速度慢会使结果失真(相比之下I / O更快)并且还会影响行为。在这种情况下,采样的探查器是更好的方法。
答案 1 :(得分:2)
不,Valgrind是一个动态分析工具,用于充实内存分配错误和线程竞争条件(等等)。
您正在寻找代码分析器,例如Luke Stackwalker。我不知道任何关于* NIX系统的问题,对不起。
答案 2 :(得分:0)
据我所知。 oprofile
是您想要的最佳工具。