¿Cuál es la mejor manera de perfilar la ejecución de JavaScript? [cerrado]

94

¿Existe un buen generador de perfiles para javascript? Sé que firebug tiene soporte para el código de creación de perfiles. Pero quiero determinar las estadísticas a mayor escala. Imagina que estás creando mucho código javascript y quieres determinar cuáles son realmente los cuellos de botella en el código. Al principio, quiero ver las estadísticas de perfil de cada función de JavaScript y el tiempo de ejecución. Lo siguiente sería incluir funciones DOM. Esto combinado con acciones que ralentizan las cosas, como la operación en el árbol de renderizado, sería perfecto. Creo que esto daría una buena impresión si el rendimiento se elimina en mi código, en la preparación del DOM o en las actualizaciones del árbol de representación / visual.

¿Hay algo parecido a lo que quiero? ¿O cuál sería la mejor herramienta para lograr lo mejor de lo que he descrito? ¿Sería un navegador autocompilado más un motor javascript mejorado por la funcionalidad del perfil?

Norbert Hartl
fuente
Si NODE_ENV=production node --prof app.jsno funciona, consulte stackify.com/node-js-profilers o softwarerecs.stackexchange.com para conocer las alternativas.
Cees Timmerman

Respuestas:

63

Firebug

Firebug proporciona un informe de perfiles muy detallado. Le dirá cuánto tiempo toma cada invocación de método en una tabla gigante (detallada).

console.profile([title])
//also see
console.trace()

Debes llamar console.profileEnd ()para finalizar el bloqueo de tu perfil. Vea la API de la consola aquí: http://getfirebug.com/wiki/index.php/Console_API

Mirlo

Blackbird ( sitio oficial ) también tiene un generador de perfiles más simple (se puede descargar desde aquí )

geowa4
fuente
Escribí que conozco Firefox. Quiero tener más estadísticas del navegador que está influyendo en la ejecución de JavaScript.
Norbert Hartl
1
Lo mismo ocurre con Firebug, y puede crear un perfil directamente desde la consola si no desea codificarlo.
Chris B
1
Firebug es la mejor herramienta que obtendrás.
Sasha Chedygov
1
Lo mismo funciona en Safari Web Inspector
olliej
9
Firebug es bueno y todo eso, pero no puedo creer que haya tanta gente aquí cantando "Firebug, Firebug!" justo después de que el OP dijera explícitamente que quiere perfilar su código desde varios navegadores.
JMTyler
20

Las herramientas para desarrolladores de Chrome tienen un generador de perfiles integrado.

Vince
fuente
2
+1, Speed ​​Tracer es bueno, y es importante (como mencionó el OP) perfilar su código en más que solo Firefox para ver cómo lo afecta el navegador individual.
JMTyler
4

Firebug + Firefox es imprescindible. Y la barra de herramientas para desarrolladores de IE 8 también tiene un generador de perfiles integrado (IE 8 viene con la barra de herramientas para desarrolladores).

Chris Brandsma
fuente
4

El inspector web de Safari 4 también incluye un generador de perfiles (aunque la versión de los nightlies está mejorada con las llamadas a funciones recursivas). Web Inspector también es compatible con las API de perfilador de Firebug.

olliej
fuente
4

Para JavaScript, XmlHttpRequest, DOM Access, Rendering Times y tráfico de red para IE6, 7 y 8, puede usar la edición GRATUITA de dynaTrace AJAX

Andreas Grabner
fuente
Por favor, instrucciones sobre cómo instalarlo como complemento / extensión en el navegador.
T.Todua