[英]Call-graph profilers in Python
在我的python程序中,我使用了很多模块,并试图计算所调用的函数和涉及的调用链。 python中是否有工具/模块可以为我提供这些统计信息。
我用过这个。 它不能用于我的目的,因为我的应用程序有多个线程同时运行,我最终得到12000个链接,graphviz无法编译它。 但是当我在一个线程上运行它时,它工作。
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获得KCachegrind : brew install qcachekrind
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.