gpt4 book ai didi

Python:为什么 IDLE 这么慢?

转载 作者:IT老高 更新时间:2023-10-28 20:32:21 29 4
gpt4 key购买 nike

IDLE是我最喜欢的 Python 编辑器。它提供了非常漂亮和直观的 Python shell,这对于单元测试和调试非常有用,并且是一个简洁的调试器。

但是,在 IDLE 下执行的代码非常慢。我说的疯狂是指 3 个数量级 慢:

重击

time echo "for i in range(10000): print 'x'," | python

耗时 0.052 秒,

空闲

import datetime
start=datetime.datetime.now()
for i in range(10000): print 'x',
end=datetime.datetime.now()
print end-start

拍摄:

>>> 0:01:44.853951

这大约慢了 2,000 倍。

有任何想法或想法如何改进这一点?我猜这与后台的调试器有关,但我不太确定。

亚当

最佳答案

问题是文本输出而不是调试器。

我刚刚在我的 Q6600(3GHz 超频)系统上尝试了它,但我的数字更糟。但是很容易看出,添加的输出文本越多,它们就会下降。

我尝试用

运行它

1000 次迭代 => 7.8 秒2000 次迭代 => 28.5 秒3000 次迭代 => 70 秒

我过去做过一些低级别的 TK 工作,我知道 TkText 小部件将文本保存在 BTree 结构中。一次添加一个字符是最糟糕的方法之一,但这似乎是 IDLE 正在做的事情。正常的方法是捕获更多数据并附加更大的文本 block 。

令人惊讶的是,如果您编写 print 'x\n' 输出会快得多。 7 秒内迭代 3000 次,19 秒内迭代 10000 次。

所以问题肯定在于将单个字符附加到现有行。 IDLE 程序员不知道 TkText 是如何工作的。

因此建议是在文本中添加更多换行符或输出更大的 block ,而不仅仅是单个“x”字符。

关于Python:为什么 IDLE 这么慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2212722/

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