Gestión de memoria

Francesc Alted faltet en pytables.org
Mar Mar 17 17:41:27 CET 2009


A Tuesday 17 March 2009, Alezeia Gonzalez escrigué:
> Hola a todos.
>
>
>
> Tengo un problema con la gestión de memoria de una aplicación que
> maneja una cantidad importante de datos y que al ejecutarla consume
> la memoria virtual.
>
>
>
> El problema ocurre en un procedimiento que contiene un bucle que se
> ejecuta muchas veces. Cada vez que entra en este bucle, se define un
> nuevo objeto, llamémosle “a”, de la clase “claseA”. El objeto “a”
> tiene un atributo “a.listaA” que es una lista que contiene objetos de
> la clase “claseB”. Según se construyen los objetos de la “claseB”, se
> almacenan en la lista “a.listaA”. La asignación a esta lista se hace
> por variable, por lo que, si yo quiero modificar un objeto ”b” de la
> “claseB” contenido en “a.listaA”, puedo acceder a él a través de
> “a.listaA”. Hasta aquí, todo bien
>
>
>
> El problema surge cuando se termina una iteración del bucle y voy a
> por la siguiente. Antes de volver a empezar, tengo que borrar todo lo
> que se ha construido dentro del bucle y sólo lo que se ha construido
> dentro del bucle. Entonces, utilizo el procedimiento “del” para
> eliminar el objeto “a”. De este modo, elimino “a” y “a.listaA”, pero
> no todos los objetos de la “claseB” que contiene “a.listaA”.
> Entonces, decido sobrecargar el procedimiento “del” y le digo que,
> cuando le pida que elimine “a”, además me borre cada elemento que
> contenga “a.listaA”. Y aquí está el problema. Me borra las
> referencias, pero no los objetos. Y no encuentro otra manera de
> acceder a los objetos que contiene “a.listaA”.
>
>
>
> ¿Alguien sabe cómo podría hacerlo para acceder a los objetos de la
> lista y borrarlos? Tened en cuenta que sólo quiero borrar lo que se
> haya construido dentro del bucle porque el resto de variables las
> necesito, así que no me vale algo que me borre todo.

Uf, no acabo de entender demasiado bien que es lo que pretendes.  En 
general, para este tipo de problemas te podriamos ayudar mejor si nos 
haces llegar un pequeño ejemplo de código de lo que tienes ya hecho y, 
sobre eso, nos explicas qué es lo que no te funciona.

Saludos,

-- 
Francesc Alted
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es