pyflame使用
Contents
pyflame介绍
uber开源的一款工具,利用ptrace生成渲染图,用于分析性能瓶颈
https://github.com/uber/pyflame
1.安装
系统依赖(ubuntu系统)
sudo apt-get install autoconf automake autotools-dev g++ pkg-config python-dev python3-dev libtool make
安装pyflame
git clone https://github.com/uber/pyflame.git cd pyflame ./autogen.sh ./configure make make install
安装flamegraph
2.执行
sudo ./src/pyflame -s 40 -r 0.1 –abi=34 -p 32403 | ./FlameGraph/flamegraph.pl > myprofile.svg
-s 60, 总采样时间为 60s -r 0.01, 以0.01s 的频率做采样 -p, 要采样的进程ID –abi, 指定当前环境的py版本
3.问题
1.Failed to seize PID 执行命令需要以sudo启动, 此问题为权限问题
2.py2或者py3的问题, 可能pyflame编译到了py2环境下 cat /proc/{YOUR_PID}/maps 查看是否是对应的py版本
4.参考
https://stackoverflow.com/questions/39919405/getting-errors-when-trying-to-run-pyflame-inside-python-script https://github.com/uber/pyflame/blob/master/tests/test_end_to_end.py https://zhuanlan.zhihu.com/p/28078824
效果图:
Author tmackan
LastMod 2019-09-10