如何使用perf来分析程序的耗时操作?(以XRDP为例)
Ryan 11/7/2023
# 安装perf
#安装perf
yum install perf -y
#生成火焰图的脚本工具
git clone https://github.com/brendangregg/FlameGraph
1
2
3
4
2
3
4
# 抓取dump文件
perf record -o perf.data -F 99 -g -p $(pgrep -x xrdp)
#用perf script工具对perf.data进行解析。
perf script -i perf.data &> perf.unfold
#将perf.unfold中的符号进行折叠。
./FlameGraph/stackcollapse-perf.pl perf.unfold &> perf.folded
#生成火焰图
./FlameGraph/stackcollapse-perf.pl perf_xrdp.unfold &> perf_xrdp.folded
./FlameGraph/stackcollapse-perf.pl perf_sesman.unfold &> perf_sesman.folded
./FlameGraph/flamegraph.pl perf_sesman.folded > perf_sesman.svg
./FlameGraph/flamegraph.pl perf_xrdp.folded > perf_xrdp.svg
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
Xvnc :11 -rfbport 5911 -geometry 1024x768 -depth 32 -SecurityTypes None -pixelformat RGB888
1
