Dudas sobre los test de IE9

Dudas sobre los test de IE9
17 de noviembre, 2010

Un ingeniero de Mozilla parece haber descubierto evidencias que indican que los de Redmond podrían estar haciendo trampas en el popular test para medir el rendimiento JavaScript de navegadores conocido como SunSpider. Según parece en determinadas pruebas -math-cordic test- Internet Explorer 9 la realiza en 1 ms, mientras Chrome, Opera y el resto de navegadores tarda más de 10 ms, es decir el rendimiento es 10 veces superior, ello parece indicar que hay gato encerrado.

El ingeniero de Mozilla Rob Sayre se puso manos a la obra con Firefox 4.0 beta y el resto de navegadores a comprobar el rendimiento JavaScript mediante el test SunSpider y se dio cuenta de que IE9 ofrecía un resultado realmente extraño en una de las pruebas, 1 ms nada más, frente a los 10 ms de Opera o Chrome.

Sayre mostró curiosidad en el asunto y hizo una pequeña investigación sobre ello. Realizó ciertas variaciones en el test, una con un valor true extra y otra con un valor return extra. Los resultados obtenidos entre estas variaciones y el original, en tiempo deberían ser ínfimas y sin embargo, aquí podéis ver las diferencias.

Los tres test deberían dar un resultado aproximadamente igual y bueno, como se puede ver el resultado cordic original, es de 1 ms con una consistencia total, 0.0% de variación. En esa prueba la ganancia es de poco más de 21 ms, pero quizá no sea la única prueba que no pasa de manera legítima.

Posibilidades de este hecho:

* Un bug en el motor JavaScript.

* Optimizaciones de manera deliberada para el test SunSpider, es decir, trampa.

* Una optimización accidental para el test SunSpider, es decir, una excusa frente a la posible trampa.

Sayra ya ha mandado este problema como un bug a Microsoft.

En cualquier caso y como apuntan por ejemplo desde ZDnet, una diferencia de 9 milisegundos no parece que afecte a los buenos resultados obtenidos por la última versión de Internet Explorer 9 (platform preview 7). En realidad las diferencias en velocidad con SunSpider son mínimas por lo que cuesta imaginar que Microsoft haya hecho trampas por 9 milisegundos.

*Actualización

En un comentario muy interesante al anteriormente citado artículo de ZDnet un lector apunta a que se podría tratar perfectamente de un efecto secundario de la optimización del código relacionada con la estructura interna de bloques de JavaScript. En cualquier caso el comentario concluye que "un ingeniero de Mozilla incompetente se tropieza con un efecto secundario de la optimización del código e inmediatamente asume que se hace trampa".

*Nueva actualización.

Según hemos podido leer en MuyWIndows Microsoft ya ha publicado la razón por la cual el test SunSpider obtiene tan buenos resultados con ese apartado. En realidad se trata del efecto de una optimización llamada de eliminación de código muerto por lo que las acusaciones de que Microsoft hubiera hecho trampa son infundadas.

  • Share This