Ubuntu 16.04上Linux C++程序性能分析工具perf使用入门

目前,perfLinux系统上最全面最方便的一个性能检测工具。由Linux内核携带并且同步更新。

Ubuntu 16.04系统上需要执行如下命令安装:

# 常规内核使用
#sudo apt-get install linux-tools-generic
# 低延时内核使用
#sudo apt-get install linux-tools-lowlatency

# 因此我们根据内核自动选择安装
$ sudo apt-get install linux-tools-`uname -r | cut -d- -f1-2`-`uname -r | cut -d- -f3`

$ sudo apt-get install linux-tools-common

#解决报错"Kernel address maps (/proc/{kallsyms,modules}) were restricted. Check /proc/sys/kernel/kptr_restrict before running 'perf record'".

$ sudo sh -c " echo 0 > /proc/sys/kernel/kptr_restrict"

使用方法如下(gcc编译时最好使用-g参数,生成符号,方便调试):

#生成性能日志文件,默认生成 perf.data
$ sudo perf record -e cpu-clock -g ./hello

#解析性能日志
$ perf report -g -i perf.data

参考链接


Linux C++程序进行性能分析工具gprof使用入门

软件的性能是软件质量的重要考察点,不论是在线服务程序还是离线程序,甚至是终端应用,性能都是用户体验的关键。这里说的性能重大的范畴来讲包括了性能和稳定性两个方面,我们在做软件测试的时候也是要重点测试版本的性能表现和稳定性的。对于软件测试过程中发现的性能问题,如何定位有很多的方法。基本的方法可能是开发者对代码进行review,或者是使用一些工具对代码进行性能分析。常见的性能分析工具有哪些呢?以下两篇文章做了详细的总结:

gprof是可用于Linux C++代码性能分析工具之一。
继续阅读Linux C++程序进行性能分析工具gprof使用入门