标准分析器的输出通常被低级函数所花费的时间的详细信息所堵塞。在一个大型、复杂的项目中,我想首先大致了解我的代码的哪些部分比其他部分花费的时间更长。
具体来说,我想知道是否有一种方法可以告诉探查器报告仅限于特定调用深度的结果。例如,设置深度 = 0 应该只显示整个 python 脚本的总时间;深度 = 1 可以显示脚本中各行的时间; height = 2 可以显示脚本中函数调用的函数的时间,等等。
有这样的工具吗?
最佳答案
这可能不完全是您正在寻找的内容,但我个人发现pyprof2calltree很有用。它将内置 cProfile 的输出转换为 KCacheGrind 等工具可以理解的格式。 。 (也有使用不同小部件集的实现,例如 qcachegrind)。
像 KCacheGrind 这样的工具,除其他外,允许您可视化分析代码的调用树,并且很容易看到特定调用函数(即顶级主函数)的哪些被调用者消耗最多时间 - 检查随附的屏幕截图以获得更好的想法。 (图片来源:link)
安装pyprof2calltree
和KCacheGrind
后,可视化分析器输出只需一个命令:
pyprof2calltree -k -i todo_profile.cprof
-i
选项指定i输入文件是什么,-k
开关运行已安装的可视化工具(例如 KCacheGrind) .
关于python - 将 python 分析到固定的调用深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47859745/