[pyar] i+=1 vs i=i+1

nachopro tranceway en gmail.com
Vie Mayo 4 16:45:02 ART 2012


2012/5/4 Juan Manuel Santos <vicariousdm en gmail.com>:
>
> Del PEP8: http://www.python.org/dev/peps/pep-0008/
>
> Code should be written in a way that does not disadvantage other
> implementations of Python (PyPy, Jython, IronPython, Cython, Psyco, and such).
> For example, do not rely on CPython's efficient implementation of in-place
> string concatenation for statements in the form a += b or a = a + b. Those
> statements run more slowly in Jython. In performance sensitive parts of the
> library, the ''.join() form should be used instead. This will ensure that
> concatenation occurs in linear time across various implementations.
>
> No con un int, pero sí con strings por ejemplo. Igual todo depende de cuánto
> quieras que tu programa se porte a Jython ;)

Ojito che, para concatenar strings no sólo en Jython es lento!

En una oportunidad, acá en mi laburo, a alguien "se le moría django"
al exportar unos datos.

revisando y revisando, encontré que concatenaban los elementos de una
lista con un for y un +;
Esa lista la mayoría de las veces no superaba los 500 elementos, pero
cuando pasaba los 1.500 ya era considerablemente lenta la ejecución de
la página. Pasando los 5.000 elementos se moría todo!

Todo esto, en cpython!

-- 
ignacio benedetti a.k.a. nachopro
mailto:tranceway en gmail.com
http://blog.nachopro.com.ar/



More information about the pyar mailing list