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