将python分析到固定的调用深度

问题描述 投票:0回答:1

标准分析器的输出通常会被低级功能所花费的时间细节堵塞。在一个庞大而复杂的项目中,我想首先了解我的代码中哪些部分比其他部分花费更长时间。

具体来说,我想知道是否有办法告诉探查者报告限于特定呼叫深度的结果。例如,设置depth = 0应该只显示整个python脚本的总时间; depth = 1可以显示脚本中各行的时间; depth = 2可以显示脚本中函数调用的函数的时间,依此类推。

这样的工具存在吗?

python profiling
1个回答
1
投票

它可能不是你想要的,但我个人觉得pyprof2calltree非常有用。它将内置cProfile的输出转换为KCacheGrind等工具所忽略的格式。 (还有使用不同小部件集的实现,例如qcachegrind)。

除了其他功能之外,像KCacheGrind这样的工具允许您可视化配置代码的调用树,并且很容易看到特定调用函数(即顶级主函数)的哪些被调用者消耗最多时间 - 请查看附加的屏幕截图为了更好的主意。 profile visualization(图片来源:link

安装pyprof2calltreeKCacheGrind后,可视化分析器输出只需一个命令:

pyprof2calltree -k -i todo_profile.cprof

-i选项指定输入文件是什么,-k开关运行已安装的可视化工具(例如KCacheGrind)。

© www.soinside.com 2019 - 2024. All rights reserved.