2011-01-13 12 views
11

iam buscando algunas herramientas o formas de detectar fugas de memoria, métodos lentos en mi aplicación de JavaScript.Cómo comprobar y comprobar la cantidad de memoria que se filtra una aplicación de JavaScript

+0

¿Las pérdidas de memoria son posibles en javascript? –

+1

@Sam 'var i =" "; while (1) {i + = "¿Las fugas de memoria son posibles en javascript?";} '- no son fugas de memoria tradicionales per se ... –

+1

@sam absolutamente. el mal uso de cierres puede crear pérdidas de memoria. JS usa una marca y barre GC, por lo que mantener referencias a objetos que deberían desaparecer causará una pérdida de memoria – hvgotcodes

Respuesta

1

Buena pregunta. Los plugins de Profilers/browser son prácticos, pero muy bien pueden arrojar resultados únicos para el navegador que se está probando. Hay una serie de técnicas disponibles desde pruebas a través de plugins/profilers de múltiples navegadores hasta declaraciones de rendimiento de depuración en línea.

Dos buenos artículos con ejemplos, robustos y recomendaciones:

  1. How do you performance test JavaScript code?
  2. Memory leak patterns in JavaScript
8

Es necesario utilizar el generador de perfiles; Recomiendo Chrome. En el perfilador los pasos son

  1. Ir a la parte de perfil de las herramientas de desarrollo
  2. llegar a la parte donde las lentas js es
  3. grabación
  4. inicio del código sospechoso
  5. Detener la grabación de inicio

Después de eso, el generador de perfiles le dirá todo lo que quiere saber sobre cuántos objetos hay, cuánto tiempo se gasta en cada metodo d, etc ...

El procedimiento debería ser similar con Firebug en Firefox.

+0

¿Hay alguna manera de decir qué métodos crean los objetos que no son GC? – AJcodez

Cuestiones relacionadas