Así es como Google optimiza y hace más rápido a Google Chrome
Recientemente Google ha revelado cómo es que mantiene el rendimiento de Google lo necesario para poder funcionar de forma muy rápida. Lo que hace Google es realizar compilación concurrente, que hace que el código se compile en una fase en un estado inactivo, como en un thread de fondo. Anteriormente lo que hacía Google era compilar todo Javascript desde un solo proceso, lo que hacía que se retrasara toda la aplicación por tener que esperar la compilación completa.
Ahora Google revela que para las siguientes versiones de Google Chrome, incluyendo la versión beta, hace una compilación concurrente para mejorar el desempeño general de toda la aplicación, todo gracias al motor de compilación V8, y así es como funciona.
Primero, V8 difiere la compilación de las funciones de Javascript hasta antes de que sean ejecutadas por primera vez. Luego, las piezas de código que son ejecutadas muy seguido son compiladas por segunda vez por un compilador que optimiza el código. La segunda pasada hace que tome más tiempo, pero gracias a la avanzada técnica de optimización, entrega el código mucho más rápido.
Aquí está Google Chrome sin la compilación concurrente (V8 está completamente optimizando una gran pieza de código, causando una pausa en la ejecución).
Aquí está Google Chrome con la compilación concurrente, donde V8 optimiza los pedazos de código pero en el fondo
La barra negra que aparece en el gráfico muestra la ejecución de Javascript, la cual se ve cortada en la primera gráfica debido a que V8 tiene que compilar Javascript, lo que ocasiona un retraso para antes de ejecutar ese código. Sin embargo en la segunda gráfica se ve como la línea se ve más continua debido a que la ejecución no se detiene ya que un hilo se encarga de compilar el código.
Quizá lo malo de este tipo de técnicas es que hacen los navegadores web mucho más pesados y más complejos de lo que podrían parecer por tratar de hacer la carga y funcionamiento de los sitios web mucho mejores.
Vía thenextweb
