Entradas de mayo 29UTC 2009 en Dave Ruiz Blog

Extendiendo el artículo original de aNieto2k, “for reverso para grandes interaciones en Javascript“, he modificado el test que ha creado para realizar una comparativa entre los bucles for y while, sumando o restando valores e incrementándolo mediante las formas i++ y ++i. En este caso, he fijado el número de iteraciones a 5.000.000.

El resultado: probadlo vosotros mismos. Yo obtuve los siguientes valores, con un Firefox 3.0.10:

[ for i++ ] tiempo: 246ms. (5000000 iteraciones)
[ while i++ ] tiempo: 225ms. (5000000 iteraciones)
[ for ++i ] tiempo: 247ms. (5000000 iteraciones)
[ while ++i ] tiempo: 221ms. (5000000 iteraciones)
[ for i-- ] tiempo: 229ms. (5000000 iteraciones)
[ while i-- ] tiempo: 213ms. (5000000 iteraciones)
[ for --i ] tiempo: 221ms. (5000000 iteraciones)
[ while --i ] tiempo: 212ms. (5000000 iteraciones)

Según estos resultados, en Javascript al menos, daría prácticamente igual emplear la forma i++ e ++i. El ganador, un while — por goleada :D .

Actualización: Acabo de probarlo en IE7, y salta una advertencia de que un script puede estar ralentizando la web (¡si la espera no llega a medio segundo!). Dicha advertencia falsea los tiempos de todas las pruebas (hasta que no pulsas ‘aceptar’ no para de correr el tiempo), así recomiendo ejecutarla en cualquier otro navegador. Por cierto, ¡¡impresionante cómo va el Chrome 2!!