私のテスト追加は、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 回の実行でテストを実行しても問題ありませんが、それを超えるとこのエラーが発生します。