[pyar] Programación científica en python

Facundo Batista facundobatista en gmail.com
Vie Ago 20 17:26:50 ART 2010


2010/8/20 Ricardo Armas <rarmas en gmail.com>:

> 2010/8/20 Nico Chiaraviglio <nico.chiaraviglio en gmail.com>:
>> for i in range(0,100000000):
>>        pass
>> no solo demora mucho sino que ocupa mas de 1Gb en la memoria RAM.
> Claro, porque crea la lista completa, probá xrange

Igual, Python va a iterar millones de veces sin hacer nada, lo cual consume CPU.


>>> def f():
...   for i in xrange(10000000):
...     pass
...
>>>
>>> dis.dis(f)
  2           0 SETUP_LOOP              20 (to 23)
              3 LOAD_GLOBAL              0 (xrange)
              6 LOAD_CONST               1 (10000000)
              9 CALL_FUNCTION            1
             12 GET_ITER
        >>   13 FOR_ITER                 6 (to 22)
             16 STORE_FAST               0 (i)

  3          19 JUMP_ABSOLUTE           13
        >>   22 POP_BLOCK
        >>   23 LOAD_CONST               0 (None)
             26 RETURN_VALUE


Y Python hace esto, porque realmente no sabe si es necesario. Uno
podría estar haciendo muchas cosas en la llamada del xrange que puede
ser necesario, más allá que el cuerpo del for esté vacío.

Slds.

-- 
.    Facundo

Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org/ar/



More information about the pyar mailing list