在Python 2.7中,当我将一个大小为2.5GB的文本文件的所有数据加载到内存中以便更快地处理时,可以像这样操作:
我收到了以下错误信息:
>>> f = open('dump.xml','r')
>>> dump = f.read()
我收到了以下错误信息:
Python(62813) malloc: *** mmap(size=140521659486208) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
MemoryError
Python为什么试图为2563749237字节的数据分配140521659486208字节的内存?如何修复代码以使其加载所有字节?
我有大约3GB的可用RAM。该文件是Wiktionary的xml转储。
malloc()
来说是雄心勃勃的。 - Tim Pietzcker