2009-07-17 19 views
8

En mi solicitud, después de habilitar ASP.NET Tracing en una aplicación ASP.NET MVC, las estadísticas de tiempo de cálculo estaban fuera por un factor de 5000.¿Cómo puedo generar un trace.axd completo en ASP.NET MVC?

Tengo una página que está teniendo entre 7 y 9 segundos en cargar. Esto es corroborado tanto por Firebug como por el campo "time-taken" en los archivos de registro de IIS. (Esta es solo la página que regresa al cliente, no cualquier diseño, DOM o ejecución de scripts).

Sin embargo, cuando activo el seguimiento de aplicaciones (a través de web.config) y visualizo la salida de rastreo, el tiempo tomado de "Begin PreInit" para "End Render" es menos de 0.001 segundos.

Supongo que esto se debe a que Trace.axd se creó con WebForms en mente, y MVC omite el ciclo de vida de la página tradicional.

Sin embargo, aunque agregue rastros personalizados al inicio y al final de OnActionExecuting/OnActionExecuted, el tiempo todavía es inferior a 0,1 segundos.

¿Alguien sabe dónde en ASP.NET MVC tendré que engancharme para que la salida trace.axd informe los tiempos de ejecución precisos?

Respuesta

7

Podría ser que el tiempo para el método de acción en sí no sea la gran parte de la ejecución. Intente verificar el tiempo entre OnResultExecuting/OnResultExecuted. Este es básicamente el momento de renderizar la página en HTML, mientras que OnActionExecuting/OnActionExecuted es (básicamente) el momento de configurar los datos para la vista.

Tenga en cuenta que si utiliza LINQ, las consultas de datos pueden diferirse hasta que se represente la página (el modelo enumerado). Es decir, la lentitud puede no deberse a la complejidad de la página, sino a la accesibilidad a los datos, incluso cuando se toma el tiempo de ejecutar el resultado.

+1

+1 buen punto acerca de la carga lenta – RedFilter

+0

Sí, OnResultExecuted muestra un retraso de 9 segundos. Ahora para descubrir por qué ... (Siempre .ToList() mi Linq antes de asignarlo al modelo, por lo que no es una ejecución diferida. Creo que mis páginas maestras anidadas podrían ser las culpables). – Portman

Cuestiones relacionadas