4 formas de evaluar el rendimiento de JavaScript

Hay muchas formas de evaluar el rendimiento de JavaScript. En este artículo, repasaremos cuatro de las herramientas de evaluación comparativa más populares: JSBench, JSLitmus, JetStream y JsPerf. También discutiremos las razones para usar cada herramienta. Si está utilizando JavaScript para crear su sitio web, puede utilizar estos puntos de referencia para determinar qué herramientas son las más adecuadas para sus necesidades. Cubriremos las características de cada herramienta, los requisitos de rendimiento y las ventajas.

JSBench

JSBench es una herramienta para medir el rendimiento de un sitio web. La herramienta consiste en grabar la interacción humana con un sitio web, extraer la parte de JavaScript de la traza y organizar el código de manera que se ejecute de forma predecible y fiable. Su infraestructura subyacente fue escrita por Gregor Richards, de la Universidad de Purdue. Para más información, consulte el documento que describe la herramienta.

JSBench Suite puede ser utilizado tanto por los navegadores como por los motores para medir el rendimiento de JavaScript. Pretende replicar el código de las páginas web reales y puede ejecutarse en los principales navegadores. Dado que el rendimiento de un navegador depende de muchos factores diferentes, no es posible ejecutar un benchmark completo con un solo componente. Esto significa que JSBench es una valiosa herramienta para evaluar el rendimiento del motor sin afectar a la experiencia de los usuarios.

Las pruebas comparativas se generan a partir de páginas web reales que utilizan JavaScript. Al utilizar código real, pretenden ser representativos de la web. Los puntos de referencia se derivan de páginas web reales, pero se modifican para eliminar el no determinismo y la interacción humana. De este modo, los resultados suelen ser más precisos. Sin embargo, el código real de una página web a menudo va por detrás de los resultados de las pruebas de referencia. Si buscas resultados de benchmark, intenta ejecutar JSBench en javascript en tu navegador actual.

JSBench es un nuevo benchmark para JavaScript que forma parte del proyecto DynJS. Tradicionalmente, los benchmarks se crean escribiendo programas largos y arbitrarios que ejercitan las mismas partes del motor del lenguaje que el código real. Esto puede suponer un reto en comparación con el código real, pero este nuevo benchmark utiliza código del mundo real y automatiza el proceso. JSBench no es el único punto de referencia para JavaScript, pero es sin duda una importante contribución al campo.

JSLitmus

El benchmark JSLitmus en javascript permite medir el rendimiento del código de un programa. El benchmark utiliza una combinación de dos patrones para calcular el tiempo de prueba. En primer lugar, el patrón A realiza un bucle sobre el código n veces. En segundo lugar, los ciclos de prueba adaptativos aumentan dinámicamente n hasta que el código alcanza un límite de tiempo mínimo. Por último, JSLitmus limita el tamaño del script.

El nombre original del benchmark es Jin Guan, que también se conoce como Jiang Liang Hua Hou De Jun Zhi o Jiang Jie Guo Jin Xing. Estos dos caracteres chinos significan lo mismo, y son similares en apariencia y significado. En realidad, estos caracteres no se escriben en un lenguaje de escritura, sino que se utilizan habitualmente en chino. Cuando se utiliza JSLitmus para medir el rendimiento de javascript, se puede esperar que un programa escrito en chino se ejecute significativamente más rápido que uno escrito en inglés.

JetStream

El benchmark JetStream sobre javascript mide la velocidad de ejecución de una aplicación web utilizando JavaScript. Las pruebas de referencia están diseñadas para ejecutarse durante N iteraciones, 120 iteraciones en total, y se basan en dos puntos de referencia, el inicio y el peor caso. La puntuación de inicio se calcula como el tiempo que tarda una aplicación web en iniciarse. La puntuación del peor caso es la de las peores M iteraciones (normalmente cuatro). La puntuación del caso medio es la media de todas las iteraciones, y se calcula utilizando una media geométrica.

La prueba Speedometer depende de la API DOM del motor JavaScript. Sin embargo, esta prueba cambia el orden de los navegadores que completan la prueba. Del mismo modo, el benchmark JetStream sobre javascript utiliza dos grupos de pruebas, Latencia y Rendimiento, para medir el rendimiento global del motor JavaScript. Aunque cada navegador finaliza las pruebas en un orden diferente, la prueba del velocímetro depende del rendimiento del motor JavaScript en cada navegador.

La versión más reciente del benchmark incluye tres nuevas pruebas que hacen hincapié en el rendimiento de Unicode y de las expresiones regulares. OfflineAssembler, por ejemplo, es un parser ensamblador offline de JavaScriptCore que traduce el código Ruby a JavaScript. UniPoker simula el juego de póquer de 5 cartas utilizando puntos de código Unicode. FlightPlanner, por su parte, analiza y procesa segmentos con nombre, y calcula el recorrido y la distancia de un vuelo. También calcula los tiempos previstos para cada tramo del vuelo.

Los sistemas de referencia deben ser programas JS del mundo real y de código abierto. Los sistemas sujetos deben ser diversos en cuanto a tamaño, dominio de aplicación y prácticas de desarrollo, prueba y mantenimiento. Cada error en cada uno de los temas del benchmark debe tener un caso de prueba documentado, y el benchmark debe ser reproducible bajo restricciones razonables. Tampoco debe tener características no deterministas. Si eres un desarrollador de JS, es importante encontrar un benchmark que mida el rendimiento de tu código.

JsPerf

Si quieres evaluar el rendimiento de tu código Javascript, puedes consultar el benchmark JsPerf. Esta herramienta le permite comparar ejecuciones anteriores de código Javascript entre navegadores y dispositivos. También hace un seguimiento del rendimiento por navegador. Para empezar, puedes añadir bloques de código a JsPerf y empezar a hacer pruebas. Si tienes alguna pregunta, no dudes en ponerte en contacto conmigo.

Al escribir un benchmark de JavaScript, debes tener en cuenta varias cuestiones. La mayoría de los benchmarks de JavaScript contienen mecanismos de bucle que son vulnerables a las peculiaridades del navegador, como la eliminación del código muerto en IE9. Los errores en el motor TraceMonkey de Mozilla y el almacenamiento en caché querySelectorAll de Opera 11 también pueden afectar a los resultados. Además, no todos los benchmarks de JavaScript pueden producir resultados estadísticamente significativos. La herramienta web JsPerf, que ofrece una sencilla interfaz web para crear casos de prueba para fragmentos de código y ejecutarlos en varios navegadores, se ocupa de estos problemas.

Para realizar un benchmark de JavaScript, debe instalar JSPerf. También puedes acceder a la consola de Firefox o Chrome, que es una forma rápida y cómoda de probar el rendimiento de JavaScript. Tanto Firefox como Chrome son los navegadores de escritorio más populares, por lo que puedes utilizarlos como referencia. Para ejecutar la consola de Chrome, puedes pulsar ctrl + shift+J u opción + command+J, respectivamente, en tu ordenador Mac o Windows.

Facebook
Twitter
Email
Print

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

es_ESSpanish