Google Chrome mejora el motor de Javascript
Los ingenieros de Google han optimizado su navegador para conseguir un mayor rendimiento de código Javascript y esto es aplicable tanto en PC como en dispositivos móviles (tablets, smartphones, etc).
Las tareas de interpretar, compilar y ejecutar Javascript en Chrome se realizan a través de un motor que recibe en nombre de V8. El motor Javascript V8 está programado en C++ y puede ser usado tanto como una aplicación independiente como emplearla en otros proyectos ya que es de código abierto y gratuito.
Tradicionalmente el motor de Javascript V8 compila en código máquina justo antes de que este va a ser ejecutado y esta tarea de compilación se lleva a cabo en el hilo principal (main thread) lo cual puede interferir en el rendimiento de la aplicación Javascript. Seguro que más de uno ha observado como en algunas páginas web que usan código Javascript complejo, Chrome no responde como debiera y tiene algo parecido a interferencias o saltos.
Este problema lo han solucionado empleando la compilación concurrente de Javascript, que lo que permite es desviar la mayor parte del proceso de compilación a otro hilo (background thread) y así obtener un mayor rendimiento.
Como mejora el motor de Javascript en Google Chrome
Voy a tratar de hacer una explicación sencilla para que todos la podamos entender pero por si no es suficiente para alguno os dejo el siguiente artículo en inglés de los desarrolladores de Google Chrome con su explicación original.
Para mejorar el rendimiento de Javascript en Chrome, lo que se hace es compilar el códiogo en diferentes fases además de lo que ya hemos dicho de desviar parte de este trabajo de compilación a un hilo secundario.
Según Yang Guo (ingeniero de Google Chrome) en V8 se ha introducido una primera fase de compilación en la que el objetivo es obtener un código compilado en el menor tiempo posible, sin prestar atención en optimizar ese código compilado.
En cambio si hay bloques de código en Javascript que son ejecutados muchas veces estos se vuelven a compilar en una segunda fase, pero esta vez centrándose en optimizar el código compilado para que sea más rápido. Esta tarea de compilar un código más optimizado, como es lógico necesita más tiempo que la compilación inicial, pero como son bloques de Javascript que se ejecutan muchas veces, a la larga se consiguen mejores tiempos de ejecución.
Hasta ahora Chrome sólo realizaba una única compilación con código optimizado en su totalidad lo que podía provocar el clásico efecto de que una aplicación Javascript se ejecute a saltos.
De momento esta actualización solo está disponible en la versión Beta de Chrome pero pronto la tendremos en versiones estables. Como no podía ser menos FireFox también está trabajando en un sistema similar para optimizar el motor de Javascript, ya veremos que pasa cuando tengamos entre nosotros las versiones estables con estos nuevos motores Javascript optimizados.
Para hacer un benchmark del motor Javascript de nuestro navegador podemos usar la aplicación online de Google de nombre Octane.