В Python 2.7, когда я загружаю все данные из текстового файла размером 2,5 ГБ в память для более быстрой обработки следующим образом:
>>> 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 пытался выделить 140521659486208
байт памяти для 2563749237
байтов данных? Как исправить код, чтобы он загружал все байты?
У меня свободно около 3 Гб оперативной памяти. Файл представляет собой XML-дамп Викисловаря.
malloc()
. - person Tim Pietzcker   schedule 22.06.2012