关于用户界面:是否有针对python的可视化分析器?

Is there a visual profiler for Python?

我现在使用cprofile,但我发现仅仅为了查询统计数据而编写pstats代码很乏味。

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

Java世界的一些示例是VisualVM和JPrPrror。

  • 这样的东西存在吗?
  • 有这样做的IDE吗?
  • dtrace会有帮助吗?

我知道kcachegrind for linux,但我更喜欢不用安装kde就可以在windows/mac上运行的东西。


我和一个朋友写了一个名为snakeviz的python概要文件查看器,它在Web浏览器中运行。如果您已经成功地使用了runsnakerun snakeviz,那么它可能不会增加那么多的值,但是snakeviz更容易安装。

编辑:snakeviz支持python 2和3,并在所有主要系统上工作。


我只知道runsnakerun。

前一段时间也有人谈到Pydev(Eclipse)中的一个集成分析器,但我不知道它是否能看到曙光。

更新:不幸的是,runsnakerun似乎不再被维护,它不支持python 3。


我使用gprof2dot.py。结果是这样的。我使用这些命令:

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

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


Spyder还为cprofile提供了一个非常好的图形用户界面:

enter image description here


用于Visual Studio的python工具包含一个非常完善的图形探查器:http://www.youtube.com/watch?V=VCX7RLPYEZ&HD=1

http://pytools.codeplex.com/


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


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


试试蛇维兹。非常容易安装(通过PIP)并且它是基于浏览器的。

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


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


考虑PyFlame+火焰图

pyflame:python+flamegraph的ptracing profiler

https://github.com/uber/pyflame

可以使用pyflame跟踪运行中的python进程。


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

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

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

有关比较,请参见配置文件"Eye对gprof2dot使用的规范示例的可视化"。对于python,请参见cprofile输出示例。


我用过PLOP,发现它很轻。快速了解性能。