Simple bucle
nieto_a1 en tsm.es
nieto_a1 en tsm.es
Mar Dic 16 16:00:37 CET 2003
Hola,
Es el primer mensaje que mando a la lista y me gustaría que este correo
sirviera de presentación.
Llevo un año utilizando python y cada vez me impresiona más su sencillez
y su simplicidad, pero a la vez su potencia para hacer tareas complejas
en muy poco tiempo. Realmente ha incrementado mi productividad en el
trabajo. Si tuviera que elegir un adjetivo para python ese sería, sin
duda, productivo.
Suelo estar bastante al corriente de las últimas noticias de python tanto
en daily python-url como en las news de comp.lang.python. Recientemente
he leído un artículo donde se comparaba el rendimiento de python con el
de java y me he quedado bastante sorprendido con una prueba en
particular. El código python era tan simple como el siguiente;
for i in xrange(20000000):
pass
y el equivalente en java era;
class test {
static void main(String argv[]) {
for ( int i = 0; i < 20000000; i++ ) {
}
}
}
El código java se ejecutaba prácticamente en un segundo, sin embargo el
código en python tardaba ocho segundos (en mi portátil, pentium III a 750
Mhz y 128Mb de RAM). Pruebas en un Solaris 8 daba tiempos relativos
similares.
Lo que me llama la atención no es lo poco que tarda la versión java, sino
el exceso de tiempo que emplea python para una tarea, en principio, muy
simple.
He revisado por encima la función xrange en los fuentes de python y me ha
parecido ver que la mayoría del tiempo se gasta en crear los 20000000 de
objetos int que hacen falta para el bucle.
¿Qué opinión os merece esto, os parece normal que python tarde tanto
tiempo en comparación con java en algo que parece simple?. ¿Habéis leído
algo al respecto?.
La página en cuestión es www.flat222.org/mac/bench.
Gracias por vuestra atención y un saludo.
Álvaro Nieto
Más información sobre la lista de distribución Python-es