gpt4 book ai didi

Python inspect.stack 很慢

转载 作者:太空狗 更新时间:2023-10-29 21:16:07 28 4
gpt4 key购买 nike

我只是分析我的 Python 程序,看看为什么它看起来相当慢。我发现它的大部分运行时间都花在了 inspect.stack() 方法(用于输出带有模块和行号的调试消息)上,每次调用耗时 0.005 秒。这似乎相当高; inspect.stack 真的这么慢,还是我的程序有问题?

最佳答案

inspect.stack() 做了两件事:

  • 通过向解释器询问调用者 (sys._getframe(1)) 的堆栈帧来收集堆栈,然后跟踪所有 .f_back 引用。这很便宜。

  • 每帧,收集文件名、行号和源文件上下文(如果需要,源文件行加上它周围的一些额外行)。后者需要读取每个堆栈帧的源文件。 这是昂贵的一步

要关闭文件上下文加载,请将 context 参数设置为 0:

inspect.stack(0)

即使在 上下文设置为 0 的情况下,您仍然会在每帧中进行一些文件系统访问,因为文件名已确定并验证为每个帧都存在。

关于Python inspect.stack 很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17407119/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com