Medir consumo de memoria

Oswaldo Hernández listas en soft-com.es
Mar Sep 30 16:01:50 CEST 2008


lasizoillo escribió:
> Buenas:
> 
> 2008/9/30 Oswaldo Hernández <listas en soft-com.es>:
>> Hola,
>>
>> Tengo una docena de clases en las que en algun momento pueden haber unas
>> 50.000 o mas instancias en memoria, por lo que tengo dudas sobre el consumo
>> de memoria de las mismas y por lo tanto si deberia replantearme el diseño.
>>
>> ¿Hay alguna formula o funcion que diga la memoria que consume un objeto?,
>> por ejemplo una lista con 50.000 enteros.
>>
> 
> En principio no hay forma. Cosa que es una jodienda y por lo que
> alguien abrió un ticket:
> http://bugs.python.org/issue2898
> Ese ticket parece que ha sido escuchado y aparece en la lista de
> cambios de la version 2.6:
> http://docs.python.org/dev/whatsnew/2.6.html
> (busca getsizeof() dentro de la pagina)
> 
Buena noticia :)

> Hay gente que ya se las tuvo que ver con ese problema y se busco las
> habichuelas:
> http://bytes.com/forum/thread757255.html
> El codigo aparece horrible, quiza ese mismo hilo en otra web aparezca fetén.
> 
Si es horrible.
He intentado arreglarlo, pero solo me funciona son los tipos basicos, no con clases.

> Quiza, aun yendo a ciegas, te interese probar el uso de __slot__:
> http://mypythonnotes.wordpress.com/2008/09/04/__slots__/
> Basicamente, mediante el uso de __slot__ en tus clases eliminas el
> overhead de un diccionario por clase, junto con la posibilidad de
> crear propiedades dinamicamente en dicha clase. Menos memoria y menos
> funcionalidad, no todo sale gratis :-(
> 
> Tienes un interesante articulo sobre una prueba de uso de __slot__ en
> el objeto Deferred de twisted:
> http://twistedmatrix.com/pipermail/twisted-python/2008-May/017724.html
> dan algunas estimaciones de memoria antes y despues de su uso. Espero
> que te puedan orientar en tu problema.
> 

Voy a estudiar mejor los slots a ver si puedo adaptarlos bien a las clases en cuestion y economizar 
el máximo de memoria.

Gracias.

-- 
*****************************************
Oswaldo Hernández
oswaldo (@) soft-com (.) es
*****************************************
PD:
Antes de imprimir este mensaje, asegúrese de que es necesario.
El medio ambiente está en nuestra mano.
_______________________________________________
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