我的测试追加创建一个包含 60MB 字符串和 5 字节字符串的列表。然后将此列表与join()
:
import timeit
setup_str = 'str_5byte = "\xfa\xea\x02\x02\x02"; L = [str_5byte]; str_60mb = str_5byte * 12000000'
t = timeit.Timer('L.append(str_60mb); str_long = "".join(L)', setup=setup_str)
t.timeit(100)
返回此异常:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python25\lib\timeit.py", line 161, in timeit
timing = self.inner(it, self.timer)
File "<timeit-src>", line 6, in inner
MemoryError
我假设每次执行后变量都会被删除并被垃圾收集,那么为什么我的内存不足呢?运行 8 次执行的测试是可以的,但比这更高,我得到这个错误。