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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值