Linux 使用perf进行内存检查
安装perf
sudo apt install linux-tools-common
之后运行perf,如果有问题,按照提示安装所缺项目即可。
使用方法
先输入
top
查看进程PID
如图,vmware的PID为3379,可键入
sudo perf record -g -F 999 -e -p 3379 -- sleep 10
表示以刷新率999,刷新监控十秒,-p后接进程PID的值,--
与sleep
之间有空格。
令perf在检查C++代码时不需要sudo权限
修改 sysctl.conf 文件:
sudo gedit /etc/sysctl.conf
向文件中加入以下语句:
kernel perf_event_paranoid=-1 kernel.kptr_restrict=0
重启电脑,再次运行perf,发现不需要sudo权限即可。
只记录重要信息并查看火焰图
perf record -g -F 999 -p 3379 -e cpu-clock:u -- sleep 10
之后在该目录下找到perf.data文件,并输入
perf script -i perf.data > profile.linux-perf.txt
之后进入网站speedscope,将上一步得到的profile.linux-perf.txt输入即可。
配合rosrun使用
rosrun --prefix 'perf record -g -F 999 -e cpu-clock:u' xxx