Как я могу сгенерировать полный trace.axd в ASP.NET MVC?

В моем приложении после включения трассировки ASP.NET в приложении ASP.NET MVC статистика расчета времени была отключена в 5000.

У меня есть страница, которая занимает от 7 до 9 секунд для загрузки. Это подтверждается как Firebug, так и полем "время" в файлах журнала IIS. (Это только страница, возвращаемая клиенту, а не выполнение макета, DOM или script).

Тем не менее, когда я включаю трассировку приложения в целом (через web.config) и просматриваю вывод трассировки, время, затраченное с "Begin PreInit" на "End Render", составляет менее 0,001 секунды.

Я предполагаю, что это связано с тем, что Trace.axd был создан с учетом WebForms, а MVC обходит традиционный жизненный цикл страницы.

Но даже если я добавлю специальные трассы в начале и конце OnActionExecuting/OnActionExecuted, время еще меньше 0,1 секунды.

Кто-нибудь знает, где в ASP.NET MVC мне нужно будет зацепиться за то, чтобы отчет trace.axd выдавал точное время выполнения?

+8
источник поделиться
1 ответ

Возможно, что время для самого метода действия не является большой частью исполнения. Попробуйте проверить время между OnResultExecuting/OnResultExecuted. Это в основном время, чтобы на самом деле отобразить страницу в HTML, тогда как OnActionExecuting/OnActionExecuted - это (в основном) время для настройки данных для представления.

Обратите внимание, что если вы используете LINQ, сами запросы данных могут быть отложены до тех пор, пока страница не будет отображена (указанная модель). То есть, медленность может быть не из-за сложности страницы, а доступа к данным, даже когда время выполняется при выполнении результата.

+7
источник

Посмотрите другие вопросы по меткам или Задайте вопрос