在命令行上启动 Python 脚本的速度与在 IDLE shell 中启动的速度

在命令行上启动 Python 脚本的速度与在 IDLE shell 中启动的速度

我多次注意到,一个简单的 Python 脚本(在循环中进行一些简单的代数计算)在 shell 命令行上启动时比通过 IDLE 的 shell 运行速度快得多(最高可达 6 倍)。脚本中没有什么特别之处。我只打印一个循环变量来直观地跟踪循环中的进度。

当然,仅仅这个打印语句不可能是导致 IDLE 速度损失的原因,或者可以吗?

有人能解释一下这是为什么吗?

答案1

是的,print 语句确实是导致空闲速度变慢的主要原因。IDLE 会捕获 stdout 和 stderr 流,并执行大量 Tk 命令以正确呈现文本。删除 stdout 输出应该会再次加快速度。

查看空闲库.PyShell空闲库.输出窗口, 和空闲库.EditorWindow兔子洞范围(部分)的模块......

我建议使用日志记录模块来记录进度;然后您可以在 IDLE 中运行时将日志记录级别设置为更高的级别,以避免在该条件下输出,或者在 stdout 以外的其他地方进行记录。

虽然我真的不推荐这样做,下面的方法可能有效最多如果你真的想在 IDLE 下运行时配置不同的行为,那么你可能需要花费很多时间。但你真的不应该这样做 :-)

import sys

running_under_idle = 'idlelib' in sys.modules

相关内容