Performance en Python
Cayeron en mis manos unos slides sobre Python de Robert Collins, uno de los desarrolladores de Bazaar contratados por Canonical, y queria compartir algunas partes interesantes:
Crear una tupla: 0.04 usec.
Crear una lista: 0.21 usec.
Llamadas a funciones: 0.22-0.29 usec.
Crear un dict estaticamente: 0.53 usec.
Crear un objecto con slots: 1.12 usec.
Crear un objecto sin slots: 1.39 usec.
Cual es la forma mas rapida de escribir 1MB de informacion?
$ python -m timeit -s ’onek = "A"*1024’
-s ’lines=[onek]*1024’
“f = file(’/dev/null’, ’wb’)”
“for line in lines: f.write(line);”
“f.close()”
1000 loops, el mejor de 3: 1.03 msec por loop
1GB/second
$ python -m timeit -s ’onek = "A"*1024’
-s ’lines=[onek]*1024’
’onem = “”.join(lines)’
“f = file(’/dev/null’, ’wb’)”
“f.write(onem)”
“f.close()”
1000 loops, el mejor de 3: 628 usec por loop
1.6GB/second
$ python -m timeit -s ’onek = "A"*1024’
-s ’lines=[onek]*1024’
“f = file(’/dev/null’, ’wb’)”
“f.writelines(lines)”
“f.close()”
1000 loops, el mejor de 3: 510 usec por loop
2GB/second
$ python -m timeit -s ’onek = "A"*1024’
-s ’lines=[onek]*1024’
-s ’onem = “”.join(lines)’
“f = file(’/dev/null’, ’wb’)”
“f.write(onem)”
“f.close()”
10000 loops, el mejor de 3: 19.4 usec por loop
50GB/second
Pueden bajar los slides completos.
Related items

