JavaScript y Wasm: ¿Cuál es más eficiente energéticamente y más rápido?
Que funciona más rápido y ahorra más energía: JavaScript o Ensamblaje web? La Universidad de Minho en Portugal investigó esta misma pregunta y concluyó que, si bien JavaScript puede ser más eficiente energéticamente y más rápido que Wasm cuando se trata de micro-benchmarks en el laboratorio, en aplicaciones del mundo real, Wasm supera a JavaScript en términos de velocidad y energía. eficiencia, a veces en un 30% en promedio.
y con esto Era m todavía en sus primeros días.
“Vazm todavía está en su infancia y solo el tiempo nos dirá cómo se desarrollará”, dijo el autor del estudio. Juan de Macedo, un ingeniero de software, le dijo a The New Stack por correo electrónico. “En nuestras predicciones más descabelladas, vemos a Wasm eliminando por completo las aplicaciones nativas de los sistemas operativos y coronando al navegador web como el sistema operativo del siglo XXI”.
Micro-Benchmarks vs Aplicaciones del Mundo Real
El estudio, publicado en 2022, analizó puntos de referencia del mundo real y micropuntos de referencia.
“Un microbenchmark es un programa que monitorea y mide el desempeño de una tarea bien definida como el tiempo transcurrido, la velocidad de transacción, el ancho de banda, etc.”, explicó De Macedo. “La microevaluación comparativa es una de las principales formas de medir el rendimiento de un sistema de software, por lo que Wasm no es una excepción.
Dado que uno de los principales objetivos de Wasm es mejorar el rendimiento de las aplicaciones web, dice, “comparar el tiempo de ejecución es particularmente relevante. desempeño energético Wasm y JS”, dijo.
Cuando se trata de micro puntos de referencia, JavaScript podría ser más eficiente energéticamente y más rápido que Wasm en algunos casos. Si bien Wasm fue más eficiente en términos de energía y superó a JavasScript en Google Chrome y Microsoft Edge, JavaScript tuvo mejores resultados de rendimiento que Wasm en Mozilla Firefox, “a menudo por un margen significativo”.
Sin embargo, al final, Wasm aún reinó supremamente en las aplicaciones del mundo real.
“Los resultados preliminares muestran que aunque WebAssembly todavía está en sus inicios, está comenzando a superar a JavaScript, que tiene más espacio para crecer”, dijo. “El análisis estadístico muestra que WebAssembly produce diferencias de rendimiento significativas en comparación con JavaScript”.
Cómo funcionaba JavaScript y Wasm Research
El estudio analizó qué tan bien se desempeñaron Wasm y JavaScript en aplicaciones del mundo real. punto de referencia wasmboyEmulador de Gameboy/Gameboy Color escrito Mecanografiado Comparando Wasm. Wasmboy está escrito en JavaScript/TypeScript y se creó con el objetivo principal de comparar el rendimiento en tiempo de ejecución con Wasm producido por un desarrollador de AssemblyScript. ES6 es la última versión de JavaScriptSegún lo producido por el desarrollador de TypeScript.
“Esta consola de juegos incluye seis juegos de código abierto diferentes que pueden ejecutarse en la consola”, dice el informe. “Hemos actualizado el código fuente de WasmBoy para especificar el navegador en el que deben ejecutarse los juegos”.
Así, con seis juegos ejecutándose en dos idiomas en tres navegadores -Chrome, Edge y Firefox- el equipo tuvo un total de 36 ejemplos únicos.
También usado Comparación de PSPDFKit, utiliza un software que admite la visualización, grabación y llenado de formularios en documentos PDF en cualquier plataforma. El informe señaló que el punto de referencia de código abierto se creó para evaluar la viabilidad de migrar el software al ecosistema Wasm y comparar las aplicaciones de JavaScript con Wasm. El equipo realizó cambios en el código fuente de la aplicación para implementar varias inclusiones en los dos lenguajes bajo revisión (was y asm.js). Para realizar la prueba con entradas reales, el equipo revisó cinco documentos pdf diferentes, incluido un libro dividido en tres partes, un artículo científico y una presentación de diapositivas de 20 diapositivas.
“Al igual que en el punto de referencia de Wasmboy, desarrollamos makefiles para automatizar la ejecución en diferentes navegadores”, dice el informe, lo que da como resultado cinco ejemplos en cada idioma en tres navegadores para 30 ejecuciones de programas únicas.
También analizó varios criterios micro; estos programas se escribieron originalmente en C y se compilaron tanto en Wasm como en JavaScript utilizando el compilador Emscripten. Otros lenguajes que se pueden usar para compilar en Wasm C/C++, ÓxidoObtener, Python y Script de ensamblajeFormulario mecanografiado.
Puede leer detalles de micro puntos de referencia y otros aspectos del estudio.WebAssembly frente a JavaScript: potencia y rendimiento de ejecución”, de João De Macedo, Rui Abreu, Rui Pereira y João Saraiva, disponible por suscripción en el Instituto de Ingenieros Eléctricos y Electrónicos.org o Gratis en la tesis de maestría de Macedon.
Sin embargo, en pocas palabras, este enfoque permitió al equipo ver cómo, por ejemplo, JS y Wasm manejan de manera diferente la escala y el tamaño de entrada. Un estudio anterior utilizó este enfoque, pero solo analizó el rendimiento en las máquinas virtuales. La investigación de De Macedon quería analizar las aplicaciones del mundo real, por lo que el equipo desarrolló un marco para medir el rendimiento en un entorno basado en navegador.
Wasm como un reemplazo de JavaScript?
Le pregunté a de Macado si Wasm eventualmente reemplazaría a JavaScript.
“Tal vez nunca, porque JS tiene más sentido para las páginas web que no necesitan ser de alto rendimiento”, respondió. “Wasm actualmente sirve como una adición a JS, no como un reemplazo. Sin embargo, si Wasm se desarrollara más, podría reemplazar a JS en algunas aplicaciones debido a tiempos de carga más rápidos y un uso de recursos más eficiente.
A más largo plazo, De Macado predijo que Wasm sería disruptivo.
“Wasm no solo revolucionará Internet”, dijo. “La promesa de WebAssembly tiene el potencial de cambiar muchas áreas del mercado tecnológico, incluida la nube, a un modelo de contenedor que, últimamente, cada vez más no satisface las necesidades de todas las organizaciones”.