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