Llegamos a ustedes gracias a:



Noticias

Firefox acelera WebAssembly con una compilación del streaming

[22/01/2018] El navegador Firefox 58 de Mozilla, que se lanzará el 23 de enero, presenta una tecnología de compilación diseñada para hacer que el formato de código portátil WebAssembly se ejecute aún más rápido.

Este aumento en el desempeño se habilita mediante la compilación del streaming, en la cual el navegador compila el código de WebAssembly incluso mientras se está descargando. El código comienza a compilarse antes y, por lo tanto, termina de ejecutarse antes. Firefox 58 también presenta un nuevo compilador de dos capas, con un nuevo compilador de línea de base que compila el código de 10 a 15 veces más rápido que el compilador de optimización.

La combinación de compilación en tiempo real y compilación de dos capas hace que el código de WebAssembly se compile más rápido de lo que puede ser entregado por la red. Mozilla observa que, en una computadora de escritorio, ha podido compilar de 30 a 60 megabytes de código de WebAssembly por segundo. En un dispositivo móvil "promedio, el código de WebAssembly se compila a 8 megabytes por segundo, lo cual es incluso más rápido que la velocidad de descarga para casi cualquier red móvil, afirmó Lin Clark, evangelista senior de Mozilla.

Clark explicó que decodificar WebAssembly es más simple y más rápido que analizar JavaScript. Esta decodificación y compilación se podría dividir en varios subprocesos, lo que hace que la compilación de la línea de base sea más rápida. El código compilado en la línea de base puede comenzar a ejecutarse en el subproceso principal sin detenerse para la compilación. Otros subprocesos, mientras tanto, funcionan en una versión más optimizada del código, la cual luego puede intercambiarse para que el código sea más rápido.

Los planes futuros sugieren que la decodificación y compilación se realicen en la primera página de carga y que el caching del código de máquina resultante se realice en la memoria caché HTTP. Cuando se solicite esa URL, se enviará el código de máquina precompilado, lo que elimina los tiempos de carga para las siguientes cargas de página. Aunque el bytecode de JavaScript se está almacenando en la caché de esta manera en Firefox 58, aún queda trabajo por hacer para almacenar en caché el código de máquina para los archivos de WebAssembly

Los desarrolladores que usan Firefox Nightly o beta pueden probar la tecnología en su propio dispositivo en este enlace.