En Python 2.7, cuando la carga de todos los datos de un archivo de texto de 2,5 GB en la memoria para un procesamiento más rápido de esta manera:carga Python 2 GB de archivo de texto en la memoria
>>> f = open('dump.xml','r')
>>> dump = f.read()
Tengo el siguiente error:
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
¿Por qué Python intentó asignar 140521659486208
bytes de memoria para 2563749237
bytes de datos? ¿Cómo arreglo el código para que cargue todos los bytes?
Estoy teniendo alrededor de 3GB de RAM gratis. El archivo es un volcado xml Wiktionary.
¿Por qué no analiza el XML linealmente sin cargar primero la fuente en la memoria? – Alfe
Lo probé y me llevó mucho tiempo. Y como tengo mucha RAM, quiero cargar todo en la RAM para hacerlo más rápido. – pckben
¿Cuánto carnero? 64 o 32 bit? – joslinm