linux perf工具生成火焰图
注意:这个脚本依赖编译程序时启用帧指针,也就是CMakeLists.txt的CMAKE_CXX_FLAGS和CMAKE_C_FLAGS中添加-fomit-frame-pointer,如果项目中不让启用帧指针,那就修改perf record -a -g -p <pid>为perf record --call-graph dwarf -p <pid>。
#!/bin/bash
cd "$( cd "$( dirname $0 )" && pwd )"
# sudo passwd
echo 123 | sudo -S service runtime* status
PerfPath=/usr/lib/linux-tools/$(uname -r)
if [ ! -d "$PerfPath" ]; then
sudo apt-get install linux-tools-"$(uname -r)"
fi
if [ ! -f "$PerfPath/perf" ]; then
echo "Perf path error"
exit 0
fi
FlameGraph_PATH="/home/master/FlameGraph"
if [ ! -d "$FlameGraph_PATH" ]; then
echo -e "FlameGraph path error"
exit 0
fi
precise_waiting()
{
if [ $? -ne 0 ]; then
echo "$1 ERROR"
exit 0
fi
while ps -ef | grep "$1" | grep -v grep; do
sleep 1
continue
done
}
do_Log()
{
if [ -f "$2" ]; then
echo "$1 finish"
else
echo "$1 ERROR"
exit 0

该脚本主要演示了如何利用Linux Perf工具记录和分析进程性能,并结合FlameGraph生成火焰图。首先,检查并安装 Perf 工具,然后找到FlameGraph路径,接着获取目标进程(TestProject)的PID。通过Perf记录指定进程的性能数据,再将数据转换为可读格式,最后使用FlameGraph脚本生成火焰图,展示函数调用的性能分布。整个过程包括perf record、perf script、stackcollapse-perf.pl和flamegraph.pl四个步骤。
最低0.47元/天 解锁文章
5939






