gprof && oprofile 分析linux程序性能瓶颈
2014-02-17 15:44
316 查看
有些时候,我们特别关注程序的性能,特别是底层软件,比如驱动程序、OS等。为了更好的优化程序性能,我们必须找到性能瓶颈点,“好钢用在刀刃上”才能取得好的效果,
否则可能白做工作。为了找到关键路径,我们可以使用profilng技术,在linux平台上,我们可以使用gprof和oprofile工具。
gprof是GNU工具之一,它在编译的时候在每个函数的出入口加入了profiling的代码,运行时统计程序在用户态的执行信息,可以得到每个函数的调用次数、执行时间、调用关系等信息,简单易懂。适合于查找用户级程序的性能瓶颈,对于很多时间都在内核态执行的程序,gprof不适合。
oprofile也是一个开源的profiling工具,它使用硬件调试寄存器来统计信息,进行 profiling的开销比较小,而且可以对内核进行profiling。它统计的信息非常的多,可以得到cache
的缺失率,memory的访存信息,分支预测错误率等等,这些信息gprof是得不到的,但是对于函数调用次数,它是不能够得到的。
简单来说,gprof简单,适合于查找用户级程序的瓶颈,而oprofile稍显复杂,但是得到的信息更多,更适合调试系统软件。
否则可能白做工作。为了找到关键路径,我们可以使用profilng技术,在linux平台上,我们可以使用gprof和oprofile工具。
gprof是GNU工具之一,它在编译的时候在每个函数的出入口加入了profiling的代码,运行时统计程序在用户态的执行信息,可以得到每个函数的调用次数、执行时间、调用关系等信息,简单易懂。适合于查找用户级程序的性能瓶颈,对于很多时间都在内核态执行的程序,gprof不适合。
oprofile也是一个开源的profiling工具,它使用硬件调试寄存器来统计信息,进行 profiling的开销比较小,而且可以对内核进行profiling。它统计的信息非常的多,可以得到cache
的缺失率,memory的访存信息,分支预测错误率等等,这些信息gprof是得不到的,但是对于函数调用次数,它是不能够得到的。
简单来说,gprof简单,适合于查找用户级程序的瓶颈,而oprofile稍显复杂,但是得到的信息更多,更适合调试系统软件。
相关文章推荐
- 程序性能调优之 怎样使用gprof和oprofile来分析 linux程序的性能(每个函数的调用次数与耗时)
- linux性能分析及调优__cpu 性能瓶颈调优可调性能参数 、内存性能瓶颈可调性能参数(操作系统设置swap的目的、在写程序时、如何使自己的内存不被换出swap,常驻物理内存)、磁盘I/O可调性能参
- (转)程序性能调优之 怎样使用gprof和oprofile来分析 linux程序的性能(每个函数的调用次数与耗时)
- 怎样使用gprof和oprofile来分析linux程序的性能
- 怎样使用gprof和oprofile来分析 linux程序的性能(每个函数的调用次数与耗时)
- linux 下gprof 和 oprofile 分析程序性能工具 [转]
- linux 下gprof 和 oprofile 分析程序性能工具
- 怎样使用gprof和oprofile来分析linux程序的性能
- 程序性能调优之 怎样使用gprof和oprofile来分析 linux程序的性能(每个函数的调用次数与耗时)
- Linux C 程序性能测试 valgrind callgrind分析函数耗时、perf分析函数CPU消耗
- Linux 平台上的 Oprofile 性能分析工具(二)
- Linux下Java线程详细监控和其dump的分析使用—-分析Java性能瓶颈
- 利用XDebug分析PHP程序,找出性能瓶颈
- Linux下运行OProfile进行系统性能分析
- Linux下Java线程详细监控和其dump的分析使用----分析Java性能瓶颈
- gprof---Linux程序性能分析工具
- Linux代码性能检测利器(五)-OProfile分析结果误区
- gprof——GNU性能分析工具
- Linux代码性能检测利器(二)--OProfile之代码分析示例