是否有Python的可视化分析器?

时间:2010-07-31 16:37:14

标签: python user-interface profiling profiler

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

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

Java世界中的一些示例是visualvmJProfiler

  • 这样的事情存在吗?
  • 是否有IDE可以执行此操作?
  • dtrace会有帮助吗?

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

12 个答案:

答案 0 :(得分:73)

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

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

答案 1 :(得分:41)

我只知道RunSnakeRun

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

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

答案 2 :(得分:14)

我使用gprof2dot.py。结果显示为like this。我使用这些命令:

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

您需要安装graphvizgprof2dot.py。您可能想要convenience shell script

答案 3 :(得分:8)

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

enter image description here

答案 4 :(得分:4)

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

答案 5 :(得分:4)

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

http://pytools.codeplex.com/

答案 6 :(得分:3)

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

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

答案 7 :(得分:3)

KCacheGrind包含一个名为QCacheGrind的版本,它运行on Mac OS Xon Windows

答案 8 :(得分:2)

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

答案 9 :(得分:1)

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

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

使用d3.js,可以通过未聚焦元素,工具提示和fisheye distortion的相对淡化来消除大部分混乱。

要进行比较,请参阅profile_eye's visualizationcanonical example used by gprof2dot。特别是对于Python,请参阅a cProfile output example

答案 10 :(得分:1)

考虑 pyflame + flamegraph

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

https://github.com/uber/pyflame

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

答案 11 :(得分:0)

我使用plop并发现它非常轻。快速了解perf。