6

he utilizado 5 compresores JavaScript para comprimir una biblioteca JavaScript (JSMin, YUI compresor, Packer, compilador de cierre y UglifyJS)poner a prueba la ganancia de rendimiento de compresión de código JavaScript

Ahora sé que el compilador de cierre es el ganador en reduciendo el tamaño del archivo. Sin embargo, también quiero probar el aumento del rendimiento. ¿Cuál sería una buena manera de hacer esto?

Hice una página de prueba simple que utiliza todos los métodos públicos de la biblioteca. ¿Hay alguna herramienta para probar la velocidad de la página de esta prueba? P.ej. ejecutarlo X veces en un navegador y devolver la velocidad de carga promedio.

Gracias por sus respuestas!

+0

¿Qué desea medir? ¿Cargar tiempo a través de HTTP a través de la red pública? ¿El tiempo que el analizador de JavaScript pasa analizando el texto de JavaScript? ¿El tiempo que el intérprete gasta corriendo el resultado? La mayoría de las herramientas que ha enumerado solo ayudarán con el primero (tiempo de carga HTTP), el compilador de cierre es el hombre extraño porque realmente modifica su código (funciones de alineación, etc.), mientras que los demás son en gran parte sobre la longitud del símbolo reducción y (en algunos casos) ofuscación. –

+0

posible duplicado de [¿Cuál es la mejor forma de perfilar la ejecución de javascript?] (Http://stackoverflow.com/questions/855126/what-is-the-best-way-to-profile-javascript-execution) –

+0

Todo paquete. Quiero probar el aumento de velocidad para el usuario. Cronómetro de obtener la página de prueba hasta que todos los métodos públicos hayan terminado. – Chielus

Respuesta

0

Sospecho que the PageSpeed tool es lo que estás buscando.

+1

Conocía la velocidad de página, su característica de línea de tiempo puede ser útil. Sin embargo, solo es útil para ejecutar una vez. Sería mejor ejecutarlo X veces y tomar un promedio. ¿Se puede hacer esto de alguna manera? – Chielus

+0

En la práctica, es muy difícil usar esto para medir las mejoras reales en el rendimiento sin utilizar un acelerador de red. – symcbean

+0

@symcbean: Sí. O mi equivalente de un controlador de red: un servidor VPS lento en alguna parte de una conexión de 100Mbit (o incluso 10Mbit). :-) –

0

Utilice PageSpeed ​​o YSlow en firefox o HTTPAnaylser en IE para probar las diferencias de carga horaria.

0

Realmente depende de lo que su público más se preocupa por el sitio. Es hora de aparecer en la pantalla? Tiempo para completar la carga? Suavidad de la animación? Respuesta interactiva? O velocidad de cálculo sin procesar?

Debe perfilar su sitio comprimido con diferentes minificadores según las métricas más importantes.

Nota al costado: El compilador de cierre en el modo simple solo produce un mínimo de aceleración. Baja el tamaño del archivo, pero el programa de JavaScript sigue siendo el mismo. Para obtener una reducción de código significativa y optimizaciones de velocidad, debe usar el Modo avanzado.

1

No hay necesidad de ser compleja al respecto:

<html> 
<head> 
    <script> 
    var time = new Date(); 
    </script> 
    <script src="..."></script> 
    ... more scripts ... 
</head> 

<body> 
<script> 
    document.write("Time: " + String((new Date() - time)/1000) + " seconds"); 
</script> 
</body> 
</html> 

scripts en el <head> generalmente cargan en serie, por lo que este debe ser un método razonable para medir el tiempo de ejecución del script. Si tiene scripts que ejecutan el formulario <body onload="...">, haga el cálculo del tiempo transcurrido al final de esa función en lugar del final del cuerpo.

Este método no mediría el tiempo de ejecución para las funciones "asíncronas" ejecutadas a través de setTimeout o setInterval, pero esas no deberían contar contra el tiempo de carga.

alternativa y la opción más simple es usar el generador de perfiles de javascript incorporado en el inspector web de Chrome o Safari.

Cuestiones relacionadas