在我的python程序中,我使用了很多模块,并试图计算所调用的函数和涉及的调用链。在python中是否有一个工具/模块可以为我提供这些统计信息。
答案 0 :(得分:6)
我用过这个。它不能用于我的目的,因为我的应用程序有多个线程同时运行,我最终得到12000个链接,graphviz无法编译它。但是当我在一个线程上运行它时它就起作用了。
答案 1 :(得分:3)
pydoc -k profile
将为您提供系统中的内容列表。我使用了profile和cProfile。
这很简单:
if __name__ == '__main__':
if PROFILING:
import cProfile
cProfile.run("main()")
else:
main()
答案 2 :(得分:1)
六年后,我有同样的问题,一些people recommend使用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