C++火焰图
Posted 第三眼的思绪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++火焰图相关的知识,希望对你有一定的参考价值。
基础
安装perf
apt install linux-tools-common
下载FlameGraph
git clone https://github.com/brendangregg/FlameGraph.git
on-cpu火焰图
编写采集脚本
#!/bin/bash
if [ $# -lt 1 ]
then
echo 'please input pid:'
echo './xxx.sh [pid] [option:filename] [option:sleepTime(seconds)] [option:dstPrefixPath]'
exit 1
fi
# 默认参数
flameGraphpath=/home/jon/workspace/FlameGraph
dstPrefixPath=/home/jon/workspace/tmp
sleepTime=30
filename=test
if [[ $2 && -n "$2" ]]
then
filename=$2
fi
if [[ $3 && $3 -gt 0 ]]
then
sleepTime=$3
fi
if [[ $4 && -n "$4" ]]
then
dstPrefixPath=$4
fi
sudo perf record -g -F 99 -p $1 -o $dstPrefixPath/$filename.data -- sleep $sleepTime
sudo perf script -i $dstPrefixPath/$filename.data > $dstPrefixPath/$filename.perf
$flameGraphPath/stackcollapse-perf.pl $dstPrefixPath/$filename.perf > $dstPrefixPath/$filename.floded
$flameGraphPath/flamegraph.pl $dstPrefixPath/$filename.floded > $dstPrefixPath/$filename.svg
以上是关于C++火焰图的主要内容,如果未能解决你的问题,请参考以下文章