Tengo un proceso de Python de larga duración que está generando más datos de los que había planeado. Mis resultados se almacenan en una lista que se serializará (en escabeche) y se escribirá en el disco cuando el programa finalice, si es que llega tan lejos. Pero a este ritmo, es más probable que la lista agote todos los RAM libres de 1+ GB y el proceso se bloqueará, perdiendo todos mis resultados en el proceso.¿Cómo acceder a una estructura de datos desde un proceso de Python actualmente en ejecución en Linux?
Planeo modificar mi script para escribir resultados en el disco periódicamente, pero me gustaría guardar los resultados del proceso que se está ejecutando actualmente si es posible. ¿Hay alguna forma de que pueda tomar una estructura de datos en memoria de un proceso en ejecución y escribirla en el disco?
Encontré code.interact(), pero como ya no tengo este enganche en mi código, no me parece útil (Method to peek at a Python program running right now).
Estoy ejecutando Python 2.5 en Fedora 8. ¿Alguna idea?
Muchas gracias.
Shahin
¿Qué esperas hacer con la 'estructura de datos del proceso actual'? Si lo guardas y lo vuelves a cargar, ¿no estarás tan fuera de memoria como lo estás para empezar? –
En este caso particular, lo transferiré a otra máquina (con más memoria) para deserializarlo y, o bien, volver a escribirlo de forma gradual o cargarlo directamente en una base de datos. Obviamente no es sostenible, pero solo estoy buscando una solución provisional de una sola vez aquí. – Shahin