Menu
in ,

SquirrelFish Extreme: Ni Tracemonkey, ni V8

La guerra de los navegadores está lejos de terminar. Con nuevas versiones de Chrome apareciendo sigilosamente y Mozilla apostando todas sus fichas a su Tracemonkey en el próximo Firefox, las mentes detrás del WebKit han desarrollado un intérprete de JavaScript que tiene como objetivo arrasar con toda la competencia. Veamos algunos detalles, junto con los testeos que aparecieron en la red.

De la noche a la mañana, Google Chrome se convirtió en el oponente a vencer en cuanto a su velocidad de procesamiento de JavaScript, sin importar sus fallas o sus ausencias de funciones. Como el rendimiento de los navegadores puede ser medido de manera cada vez más tangible, la guerra propiamente dicha ahora se parece mucho a una prueba de velocidad. Todos luchan para crear el navegador más rápido sobre la red. El hecho de tener que escribir y reescribir motores JavaScript no parece sea un impedimento.

Aguardando a la salida de Firefox 3.1, la gente de Mozilla nos está deleitando con comentarios sobre Tracemonkey, su motor JavaScript que planea romper récords de velocidad. Pero al mismo tiempo, un buen grado de actividad se ha detectado del lado de Safari, o más precisamente hablando, de los responsables detrás del motor WebKit. En parte fue WebKit lo que catapultó a Google Chrome a lo más alto de la tabla de rendimientos, por lo que cualquier cosa que venga de esta gente, debe ser interesante.

El nuevo intérprete de JavaScript para el motor WebKit es llamado SquirrelFish Extreme, y su logo no es otra cosa que un bicho mitad ardilla, mitad pez. Ya se había diseñado una versión anterior llamada SquirrelFish, pero ésta versión Extreme incorpora varias mejoras respecto de su antecesora. Dos de ellas son las más destacadas:

1) Optimizaciones bytecode: En términos sencillos, bytecodes son paquetes de instrucciones creados para lograr una ejecución más efectiva. Para SquirrelFish Extreme se han optimizado los bytecodes de forma muy superior a lo que se vio en el primer SquirrelFish, mientras que al mismo tiempo se realizó una optimización de opcodes (códigos de operación). Según la explicación oficial, JavaScript es muy cambiante y se comporta de diferente manera ante ciertos casos. Priorizando los casos que se resuelven más rápido, se logra una mayor velocidad de JavaScript.

2) Caché polimórfico: La idea de este caché es identificar a aquellos objetos que posean una estructura similar, y asignarles un identificador de estructuras, o StructureID. A partir de esta identidad, el intérprete puede usar la misma porción de código para los objetos que tengan la misma identificación, lo cual aumenta el rendimiento de forma significativa.

Junto con el anuncio de SquirrelFish Extreme surgieron varios gráficos indicando la velocidad superior de este nuevo sistema respecto de sus competidores. El primero de ellos nos muestra cómo se posiciona la versión Extreme de SquirrelFish frente a sus predecesores, con una ganancia aproximada del 113 por ciento.

Otro gráfico que llama poderosamente la atención es el que compara a SquirrelFish con los otros jugadores pesados de esta nueva guerra de navegadores: V8 y Tracemonkey. Si bien el gráfico indica que el nuevo juguete de WebKit derrota a V8 por casi un 36 por ciento, estos datos deben ser tomados con cautela, ya que provienen de una Mac, sabiendo que Google Chrome aún no tiene una versión oficial y optimizada para estos sistemas.

Nuestra prueba
Por último, decidimos hacer nuestra propia prueba. ¿Cómo lo logramos? Están un poco ocultas, pero existen versiones "nightly build" disponibles para descargar y utilizar bajo Windows. Ten en cuenta que dichas versiones deben ser tomadas con precaución. Son similares a las versiones de desarrolladores, y pueden hacer volar por los aires tu sistema si las cosas salen mal. Para poder usar una de estas versiones, la última versión de Safari debe estar instalada. Descargamos la última versión nightly disponible y la ejecutamos, sólo para correr la prueba SunSpider:

¡Impresionante! ¡Poco más de 1600 ms! Por más que todavía falte un tiempo hasta que veamos una versión final de este sistema, SquirrelFish es más rápido que el V8 de Chrome, de acuerdo a nuestra prueba. Puede que no haya tanta diferencia de rendimiento como los gráficos oficiales pretenden informar, y hay que tener en cuenta los márgenes de error que puede tener SunSpider, pero aún así SquirrelFish es muy veloz.

Después de este resultado, sin dudas queremos ver más sobre el híbrido ardilla-pez. ¿Cuál es la mejor parte de todo esto? Que WebKit es de código abierto, lo que implica que otros navegadores podrían llegar a incorporar este nuevo intérprete, y por qué no, que alguien más pueda tomarlo como base para escribir algo aún mejor. Todo lo que sirva para subir la barra de calidad y crear navegadores más rápidos es bienvenido. Con lo que hemos visto hasta ahora, SquirrelFish va por buen camino.

¡Buena suerte!

Escrito por Lisandro Pardo

Leave a Reply