繁体   English   中英

Python中的调用图分析器

[英]Call-graph profilers in Python

在我的python程序中,我使用了很多模块,并试图计算所调用的函数和涉及的调用链。 python中是否有工具/模块可以为我提供这些统计信息。

我用过这个。 它不能用于我的目的,因为我的应用程序有多个线程同时运行,我最终得到12000个链接,graphviz无法编译它。 但是当我在一个线程上运行它时,它工作。

http://pycallgraph.slowchop.com/

pydoc -k profile

将为您提供系统中的内容列表。 我使用了profile和cProfile。

它很简单:


if __name__ == '__main__':
 if PROFILING:
  import cProfile
  cProfile.run("main()")
 else:
  main()

六年后,我有同样的问题,有些人建议使用KCachegrind来显示调用链。 虽然它对Linux用户来说是一个有效的选择,但它很难在Mac OSX上安装,也可能在Windows上安装。

最后,我正在使用gprof2dot 只需几个命令,您就可以获得富有表现力的调用图:

python -m cProfile -o output.pstats path/to/your/script arg1 arg2
gprof2dot.py -f pstats output.pstats | dot -Tpng -o output.png

简单的工具,快速的结果:检查出来: https//github.com/jrfonseca/gprof2dot

编辑:

现在我发现你也可以通过brew获得KCachegrindbrew install qcachekrind

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM