2009-07-20 13 views
5

fondo:JavaScript Evaluación del Desempeño

He buscado en torno a una referencia, o, posiblemente, una herramienta que le ayuda a evaluar teóricamente la eficiencia (costo de los recursos) de su JavaScript. Esta búsqueda ha revelado una gran cantidad de excelente software de depuración, pero realmente no puedo encontrar algo que me ayude a optimizar el código, utilizando métodos menos intensivos en recursos.

pregunta:

¿Hay algún recurso (en línea guía, lista, base de datos, libro, cualquier cosa) o tal vez algún tipo de software (basado en la Web, plugin para el navegador, la extensión IDE) que le ayudará a optimizar su JavaScript?

ejemplo:

innerText en IE/textContent en Firefox requiere muchos menos recursos que innerHTML en cualquier navegador.

Eso es un poco de sentido común, porque es menos poderoso, pero hay otras comparaciones que escucho a diario, y realmente no puedo verificar si son mejores para un código optimizado o más eficientes, e incluso ¡Si pudiera, no tendría manera de probarlo!

¿Alguna idea?

+0

Gracias por todas las respuestas! Voy a terminar el uso de estos para probar todo, pero yo Estoy adivinando en lugar de usar una guía para mostrar lo que "debería" y "no debería" usar, solo usa prueba y error en conjunto con estas pruebas para establecer las mejores prácticas para sus casos de uso. Lo hará – NateDSaint

+0

No estoy seguro ¿Por qué esto se cerró? – NateDSaint

Respuesta

6

la forma habitual para evaluar Javascript es mediante la evaluación de la cantidad de tiempo que le toma a un conjunto de código a ejecutar:

var begin = new Date().getTime(); 
//do stuff 
console.debug(new Date().getTime() - begin); 

Sin embargo, hay algunos problemas con esto en IE. si un script tarda < 15ms en ejecutarse, IE devuelve 0ms como resultado.

Varias bibliotecas de JavaScript tienen marcos de prueba para ayudar a evaluar la velocidad de su código. El marco de prueba de Dojo se llama DOH.

John Resig también creó un complemento firebug llamado FireUnit que le permite evaluar fácilmente el tiempo que le lleva a una función ejecutar, y con un poco de configuración, también emite el Big O de una función, que es una gran pieza de datos.

Salida de vídeo de Resig de JSConf en las pruebas de rendimiento JS:

Measuring Javascript Performance - John Resig

FireUnit rundown

+2

jsyk, en laptops, la resolución del temporizador de IE9 depende del plan de energía actual de la computadora. Si funciona con batería, la resolución es ~ 16ms, pero si está a cargo, entonces es mucho más fino. ejecutar una prueba en un gran número de iteraciones, por lo que la prueba en sí misma probablemente demore varios segundos onds, luego divida por el número de iteraciones. Esto hace que la resolución del temporizador tenga poca diferencia. –

3

siempre me ha gustado el enfoque simple con Firebug:

console.time("timer-name"); 

y

console.timeEnd("timer-name"); 

Bueno para mediciones de nivel granular.

1

La herramienta 'perfil' de Firebug es ideal para medir el rendimiento de JavaScript. Le muestra todos los cuellos de botella en su código en una función por desglose de funciones, que muestra cuál tuvo el mayor tiempo promedio, la mayoría de las llamadas, etc.

8

En la misma línea que strife25, Firebug tiene un método muy útil para medir el tiempo sin manejar ninguna fecha. Simplemente use esto:

console.time("Your timer name"); 
//Execute some javascript 
console.timeEnd("Your timer name"); 

Luego, revise la consola. alt text http://aquate.us/u/62232567893647972047.jpg

Editar - apagado por 30 segundos impares. :(

+1

Simpatía +1 :) –

1

Profiler en IE8 es increíble. Se le da una vista de árbol junto con el tiempo Incluido (en ms)

Cuestiones relacionadas