用户界面 - 是否有Python的可视化分析器?

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

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

Java世界的一些例子是visualvm和JProfiler。

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

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

Frederik asked 2019-09-10T07:19:35Z
12个解决方案
72 votes

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

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

jiffyclub answered 2019-09-10T07:19:56Z
40 votes

我只知道RunSnakeRun。

前段时间还有一些关于PyDev(Eclipse)中的集成剖析器的讨论,但我不知道是否会看到光明的一天。

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

nikow answered 2019-09-10T07:20:32Z
14 votes

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

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

您需要安装graphviz和gprof2dot.py。 您可能喜欢方便的shell脚本。

maxy answered 2019-09-10T07:21:01Z
8 votes

Spyder还为cProfile提供了一个非常好的gui:

enter image description here

jsexauer answered 2019-09-10T07:21:25Z
4 votes

此人创建了一个图形配置文件,如下所述。 也许你可以用它作为你自己工作的起点。

PaulMcG answered 2019-09-10T07:21:48Z
4 votes

用于Visual Studio的Python工具包含一个非常完善的图形分析器:[http://www.youtube.com/watch?v=VCx7rlPyEzE&hd=1]

[http://pytools.codeplex.com/]

Jake answered 2019-09-10T07:22:18Z
3 votes

试试Snakeviz。 非常容易安装(通过点子),它是基于浏览器。

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

BangTheBank answered 2019-09-10T07:22:48Z
3 votes

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

akaihola answered 2019-09-10T07:23:11Z
2 votes

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

Lev Levitsky answered 2019-09-10T07:23:35Z
1 votes

我编写了一个基于浏览器的可视化工具profile_eye,它可以在gprof2dot的输出上运行。

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

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

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

Ami Tavory answered 2019-09-10T07:24:18Z
1 votes

考虑pyflame + flamegraph

Pyflame:用于Python +火焰图的Ptracing Profiler

[https://github.com/uber/pyflame]

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

McKelvin answered 2019-09-10T07:25:01Z
0 votes

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

auny answered 2019-09-10T07:25:25Z
translate from https://stackoverflow.com:/questions/3378953/is-there-a-visual-profiler-for-python