Medir consumo de memoria

Luis Medel luis en luismedel.com
Mar Sep 30 16:52:56 CEST 2008


El Tuesday 30 September 2008 16:21:29 Oswaldo Hernández escribió:
> Daniel González escribió:
> > Para saber el consumo de memoria sobre Win2 yo comprobaba la memoria
> > justo antes de lanzar el proceso y en su momento de máximo consumo y
> > creo que más o menos puede darte una idea.
> >
> > Por otro lado ( teoricamente ) una lista de 50.000 enteros ... ( 1
> > entero = 4 B x 50.000 / 1024 = 195,3 MB aprox )
>
> Este resultado creo que seria 195 KB, de todas formas si haces la prueba
> con los medidores de windows:
>
> 1. Ejecutar interprete python en consola (msdos)
>      uso de memoria según windows: 3.740 KB
>
> 2. Ejecutar en el interprete:
>      >>> li = [i for i in xrange(50000)]
>
>      uso de memoria según windows: 4.592 KB
>
> segun eso crear una lista con 50.000 enteros ha consumido 852 KB lo cual
> frente a tu resultado de 4 bytes por cada entero (195 KB) parece mucha
> diferencia
>
> ????

Hola,

Según tengo entendido, xrange devuelve un generador, en vez de una lista, por 
lo que no estás creando una *gran* lista de 50000 elementos.

>>> xrange.__doc__
'xrange([start,] stop[, step]) -> xrange object\n\nLike range(), but instead 
of returning a list, returns an object that\ngenerates the numbers in the 
range on demand.  For looping, this is \nslightly faster than range() and 
more memory efficient.'

Por pura lógica una lista de 50000 enteros debe ocupar más de 800 y pico kbs. 
Aunque puede que mi lógica falle, claro :)
_______________________________________________
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