pyflame Uber 开源的 Python 性能分析工具,可在不修改代码的情况下分析性能-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

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

huc_逆天 2020-05-21 19:12:03 426

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

Python
分享到
取消 提交回答
全部回答(1)
  • huc_逆天
    2020-05-22 09:55:16

    欢迎大家分享哦~

    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程