2009-07-17 10 views
8

Sur ma demande, après avoir activé ASP.NET Tracing dans une application ASP.NET MVC, les statistiques de calcul de temps étaient hors d'un facteur 5000.Comment puis-je générer un fichier trace.axd complet dans ASP.NET MVC?

J'ai une page qui prend entre 7 et 9 secondes à charger. Ceci est corroboré à la fois par Firebug et le champ "time-taken" dans les fichiers journaux IIS. (Ceci est juste la page revenant au client, pas de mise en page, DOM ou exécution de script.)

Cependant, lorsque j'active le traçage sur l'ensemble de l'application (via web.config) et affiche la sortie de trace, le temps pris de "Begin PreInit" à "End Render" est inférieur à 0.001 secondes. Je suppose que c'est parce que Trace.axd a été construit avec WebForms à l'esprit, et MVC contourne le cycle de vie de la page traditionnelle.

Pourtant, même si j'ajoute des traces personnalisées au début et à la fin de OnActionExecuting/OnActionExecuted, le temps est toujours inférieur à 0,1 seconde.

Est-ce que quelqu'un sait où dans ASP.NET MVC je devrai crocheter afin que la sortie de trace.axd rapporte des temps d'exécution précis?

Répondre

7

Il se peut que l'heure de la méthode d'action ne soit pas la plus grande partie de l'exécution. Essayez de vérifier l'heure entre OnResultExecuting/OnResultExecuted. C'est fondamentalement le temps de rendre la page en HTML, alors que OnActionExecuting/OnActionExecuted est (fondamentalement) le temps de configurer les données pour la vue.

Notez que si vous utilisez LINQ, les requêtes de données elles-mêmes peuvent être différées jusqu'à ce que la page soit rendue (le modèle est énuméré). C'est-à-dire que la lenteur peut ne pas être due à la complexité de la page mais à l'accès aux données même lorsque le temps est pris lors de l'exécution du résultat.

+1

+1 bon point à propos du chargement paresseux – RedFilter

+0

Yup, OnResultExecuted affiche un délai de 9 secondes. Maintenant, pour comprendre pourquoi ... (Je toujours .ToList() mon Linq avant de l'assigner au modèle, donc ce n'est pas une exécution différée Je pense que mes pages maitresses imbriquées pourraient être le coupable.) – Portman