2011-12-04 14 views
12

Tengo una página que es muy lenta, no en la carga, pero en términos de la capacidad de respuesta al escribir en los campos del formulario en la página.Rendimiento de Javascript: ¿cómo comprobar qué está ralentizando la página?

No hay ajax en la página; esto no tiene nada que ver con el transporte de red.

¿Qué son buenas herramientas o estrategias para descubrir dónde están los cuellos de botella del código? No he encontrado nada en las herramientas de desarrollo de Chrome para decirme dónde están los cuellos de botella.

+0

http://stackoverflow.com/questions/855126/what-is-the-best-way-to-profile-javascript-execution – RightSaidFred

+0

¿No tienes una pestaña 'Perfil' en Chrome? – RightSaidFred

Respuesta

2

Me parece que tiene algún evento disparando en cada pulsación de tecla en su campo de entrada. cosas que puede hacer:

  1. Si perfiles de Chrome no se ajusta a sus necesidades, intente FireBug o de IE9 perfilador que es bastante decente. En IE9 puedes ver cuánto tiempo de CPU se gastó en cada llamada de función.
  2. Elimine temporalmente los manejadores de los campos, uno por uno, y observe cualquier cambio en el rendimiento.

¡Avísame cómo te va!

+0

Creo que tienes razón en que hay controladores que disparan, pero no he agregado ninguno a los campos. Todo el cronograma y perfilador de cromos aparece, es que algún código dentro de jquery se está disparando. Muy raro. – Marcin

+0

Probablemente sea la validación del lado del cliente. –

+0

Espero que no, no he escrito ninguna validación del lado del cliente. – Marcin

4

Webkit tiene una opción de 'perfil'. Abra las herramientas de desarrollador (ctrl + shift + i) y haga clic en 'Perfiles'. Desde allí, puede ver un botón de grabación (el círculo) en la parte inferior. Haz clic y usa tu página como lo harías normalmente. ¡Haga clic de nuevo para detener e inspeccionar sus cronogramas para sus llamadas a funciones!

alternativa, se puede funciones de referencia utilizando de forma individual:

console.time("Some label"); 
console.timeEnd("Some label"); 
1

Para este propósito creé UX Profiler. Realiza un seguimiento y agrupa todos los eventos que suceden como resultado de alguna acción del usuario (clic, pulsación de tecla, etc.) y mide su rendimiento. Entonces es fácil ver dónde está el cuello de botella.

+0

Apesta que tu comentario anterior fue eliminado. Esto es relevante como respuesta a la pregunta. – Marcin

+0

¡Recuperarlo por favor! –

Cuestiones relacionadas