Cuando cargo el archivo en json, el uso de la memoria de pitones aumenta a aproximadamente 1,8 GB y parece que no puedo liberar esa memoria. Monté un caso de prueba que es muy simple:¿Gran uso de memoria del módulo json de Python?
with open("test_file.json", 'r') as f:
j = json.load(f)
Lo siento que no puedo proporcionar un archivo JSON muestra, mi archivo de prueba tiene una gran cantidad de información sensible, pero por el contexto, estoy tratando con un archivo del orden de 240MB. Después de ejecutar las 2 líneas anteriores, tengo los 1,8 GB de memoria mencionados anteriormente en uso. Si hago del j
, el uso de la memoria no baja en absoluto. Si sigo eso con un gc.collect()
, no se cae. Incluso intenté descargar el módulo json y ejecutar otro gc.collect.
Estoy tratando de ejecutar algunos perfiles de memoria, pero Heapy ha estado produciendo CPU al 100% durante aproximadamente una hora y todavía no ha producido ninguna salida.
¿Alguien tiene alguna idea? También he intentado lo anterior usando cjson en lugar del módulo json empaquetado. cjson usó alrededor de un 30% menos de memoria pero mostró exactamente los mismos problemas.
Estoy ejecutando Python 2.7.2 en el servidor de Ubuntu 11.10.
Me complace cargar cualquier generador de perfiles de memoria y ver si funciona mejor que heapy y proporcionar los diagnósticos que pueda considerar necesarios. Estoy buscando un gran archivo JSON de prueba que pueda proporcionar para que cualquier otra persona lo pruebe.
Por favor, pruébalo con otro archivo. ¿Está ejecutando una sesión interactiva o un archivo de script python? ¿Ambos muestran el mismo problema? – heltonbiker
Relacionados: http://stackoverflow.com/questions/2400643/is-there-a-memory-efficient-and-fast-way-to-load-big-json-files-in-python – ChristopheD
@ChristopheD Mi problema es con la memoria nunca siendo lanzada. No me importa tanto que se use mucha memoria durante el análisis. – Endophage