Pyflame是一个独特的分析工具,可为Python 生成火焰图。Pyflame是唯一基于Linux ptrace(2)系统调用的Python分析器。这使它无需显式检测即可获取Python调用堆栈的快照,这意味着您可以在不修改源代码的情况下对程序进行概要分析!Pyflame能够分析uWSGI等嵌入式Python解释器。它完全支持对多线程Python程序进行性能分析。
Pyflame用C ++编写,注重速度和性能。Pyflame通常介绍较少的开销比内置profile
(或cProfile
)模块,并且还发出更丰富的分析数据。分析开销足够低,您可以使用它来分析生产中的实时流程。
您可以通过两种方式安装Pyflame:可以尝试使用预构建的软件包,也可以从源代码进行安装。要从源代码进行构建,您将需要具有基本C ++ 11支持的C ++编译器。已知Pyflame可以在GCC 4.6之前的版本上编译。
Debian 或者 Ubuntu 需要安装依赖包.
# Install build dependencies on Debian or Ubuntu.
sudo apt-get install autoconf automake autotools-dev g++ pkg-config python-dev python3-dev libtool make
./autogen.sh
./configure # Plus any options like --prefix.
make
make check # Optional, test the build! Should take < 1 minute.
make install # Optional, install into the configure prefix.
# Or use -t python3, as appropriate.
pyflame -t python -c 'print(sum(i for i in range(100000)))'
提供了两种模式,可以附加到正在运行的进程,也可以从头到尾跟踪命令。
默认的是附加正在运行进程
# Profile PID for 1s, sampling every 1ms.
pyflame -p PID
详细的使用文档,可以进一步学习,https://pyflame.readthedocs.io/en/latest
欢迎大家分享哦~
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。