在Linux下可以使用哪些免费,低开销(统计)的分析器?

时间:2009-02-03 00:57:32

标签: performance profiler code-statistics

最好来自Ubuntu存储库。

5 个答案:

答案 0 :(得分:3)

其他人提到OProfile;对于现代Linux安装的全系统统计分析,它确实很摇滚。

更值得尊敬的工具(不需要内核支持,因此可以在旧版本的Linux甚至非Linux操作系统下运行)GNU gprof,包含在binutils中(因此无疑)已安装在您的开发环境中。)

要使用gprof,只需使用-pg参数编译您的应用程序gcc;程序退出后将创建一个名为gmon.out的文件,然后gprof可用于分析此文件。

答案 1 :(得分:2)

一种简单但有效的技术是在GDB下运行程序并处理SIGINT信号。程序运行时,通过键入control-c或其他任意方式手动生成SIGINT,并在暂停时记录调用堆栈。这样做很多次,比如10或20,而程序主观上很慢。这将使您非常了解时间的去向。

这种方法不能为您提供精确的计时,但它确实能够找到花费最多时间的指令,包括通话指令。

How can I profile C++ code running in Linux?

答案 2 :(得分:1)

Sysprof是一个很好的分析器,类似于OProfile(也有一个gtk GUI)。这可以在Ubuntu存储库中找到。它是一个内核级别的分析器,需要一个与gprof不同的内核模块,但是,与gprof不同,它可以分析多线程应用程序。

答案 3 :(得分:0)

OProfile。它并不难以使用,但有点儿错误。

答案 4 :(得分:0)

我在oprofile(http://oprofile.sourceforge.net/news/)上取得了很大的成功,它也可以在Ubuntu存储库中使用。它不需要重新编译,并且对共享对象等没有任何限制。