开发者社区> 问答> 正文

pyflame Uber 开源的 Python 性能分析工具,可在不修改代码的情况下分析性能

Pyflame是一个独特的分析工具,可为Python 生成火焰图。Pyflame是唯一基于Linux ptrace(2)系统调用的Python分析器。这使它无需显式检测即可获取Python调用堆栈的快照,这意味着您可以在不修改源代码的情况下对程序进行概要分析!Pyflame能够分析uWSGI等嵌入式Python解释。它完全支持对多线程Python程序进行性能分析。

Pyflame用C ++编写,注重速度和性能。Pyflame通常介绍较少的开销比内置profile(或cProfile)模块,并且还发出更丰富的分析数据。分析开销足够低,您可以使用它来分析生产中的实时流程。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

安装指南

您可以通过两种方式安装Pyflame:可以尝试使用预构建的软件包,也可以从源代码进行安装。要从源代码进行构建,您将需要具有基本C ++ 11支持的C ++编译器。已知Pyflame可以在GCC 4.6之前的版本上编译。

构建依赖环境

  • autotools
  • automake
  • libtool
  • pkg-config
  • Python 2 Python 3 headers

Debian/Ubuntu

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

展开
收起
huc_逆天 2020-05-21 19:12:03 1962 0
1 条回答
写回答
取消 提交回答
  • 技术架构师 阿里云开发者社区技术专家博主 CSDN签约专栏技术博主 掘金签约技术博主 云安全联盟专家 众多开源代码库Commiter

    欢迎大家分享哦~

    2020-05-22 09:55:16
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载