Python 有可视化分析器吗? [已关闭]

问题描述 投票:0回答:12

我现在使用cProfile,但我发现编写pstats代码只是为了查询统计数据很繁琐。

我正在寻找一个可视化工具,可以向我展示我的 Python 代码在 CPU 时间和内存分配方面的表现。

Java 世界的一些示例是 visualvmJProfiler

  • 这样的事情存在吗?
  • 有一个 IDE 可以做到这一点吗?
  • dtrace 有帮助吗?

我知道适用于 Linux 的 KCachegrind,但我更喜欢可以在 Windows/Mac 上运行而无需安装 KDE 的东西。

python user-interface profiling profiler
12个回答
106
投票

我和一个朋友编写了一个名为 SnakeViz 的 Python 配置文件查看器,它在 Web 浏览器中运行。如果您已经成功使用 RunSnakeRun SnakeViz 可能不会增加那么多价值,但 SnakeViz 更容易安装。

编辑:SnakeViz 支持 Python 2 和 3,并且适用于所有主要系统。


42
投票

我只知道RunSnakeRun

前段时间也有一些关于 PyDev (Eclipse) 中集成分析器的讨论,但我不知道它是否会出现。

更新:不幸的是,RunSnakeRun 似乎不再维护,并且它不支持 Python 3。


18
投票

我使用 gprof2dot.py。结果看起来像这样。我使用这些命令:

  python -m cProfile -o profile.dat my_program.py
  gprof2dot.py -f pstats profile.dat | dot -Tpng -o profile.png

您需要安装graphvizgprof2dot.py。您可能喜欢一个方便的 shell 脚本


10
投票

Spyder 还为 cProfile 提供了一个非常漂亮的 GUI:

enter image description here


5
投票

尝试蛇形维兹。非常容易安装(通过 pip)并且基于浏览器。

https://jiffyclub.github.io/snakeviz/


4
投票

此人创建了一个图形配置文件,如此处所述。也许您可以将其作为您自己工作的起点。


4
投票

Visual Studio 的 Python 工具包含一个做得非常好的图形分析器:http://www.youtube.com/watch?v=VCx7rlPyEzE&hd=1

http://pytools.codeplex.com/


4
投票

KCacheGrind 包括一个名为 QCacheGrind 的版本,它可以在 Mac OS X Windows 上运行。


2
投票

Python Call Graph 生成的图片与 maxy 的答案 中的图片非常相似。它还显示每个函数的总时间,由于某种原因,它没有反映在示例图中。


1
投票

我编写了一个基于浏览器的可视化工具profile_eye,它对gprof2dot的输出进行操作。

gprof2dot 非常擅长处理许多分析工具的输出,并且在图形元素放置方面做得很好。最终的渲染是静态图形,通常非常混乱。

使用 d3.js 可以通过未聚焦元素、工具提示的相对淡入淡出和 鱼眼失真 来消除大部分混乱。

为了进行比较,请参阅 gprof2dot 使用的规范示例的 profile_eye 可视化。特别是对于 Python,请参阅cProfile 输出示例


1
投票

考虑 pyflame + 火焰图

Pyflame:Python + 火焰图的 Ptracing Profiler

https://github.com/uber/pyflame

您可以使用 pyflame 追踪正在运行的 python 进程。


0
投票

我用过plop,发现它非常轻量。快速了解性能。

© www.soinside.com 2019 - 2024. All rights reserved.