MiniProfile - Как выяснить, что происходит в скрытом пространстве?

Я пытаюсь понять, как использовать MiniProfile, чтобы понять, почему некоторые веб-страницы работают так медленно. Я добавил его и добавил Steps вокруг Application_BeginRequest, Application_EndRequest и вокруг моего действия Controllers (на изображении ниже это CanManageOrganization и GenerateTreeDataSource). Но, как вы можете видеть ниже, эти два метода работают относительно быстро. После этого есть большой промежуток, пока не будет вызван GetVaryByCustomString. Как мне попытаться выяснить, что происходит (на что тратится время)?

Я так понимаю, что реальный движок рендеринга - это то, что будет происходить в этом разделе? Я здесь не прав? Любые предложения о том, как я могу выяснить, на что тратится время между ними?

Результаты профиля


person Kyle    schedule 10.10.2012    source источник
comment
Это мвк? Странно, обычно я ожидаю, что сам минипрофилер автоматически покажет начало и конец действия и просмотр... Какова здесь настройка? Что это за действие? какой шаг является действием?   -  person Marc Gravell    schedule 10.10.2012
comment
Да, это MVC 4.0. Это просто обычный контроллер MVC и действие (с использованием движка Razor). Я даже пробовал полностью пустое действие/пустое представление, и это занимало +2916,0: S   -  person Kyle    schedule 10.10.2012


Ответы (1)


Я бы порекомендовал вам установить MiniProfiler.MVC3 NuGet, который даст вам более подробную информацию о MVC. Yoju также увидит время, потраченное на поиск и рендеринг представлений.

Вот пример того, что вы можете увидеть:

введите здесь описание изображения

Примечание. В последней версии NuGet, если вы размещаете приложение в интегрированном конвейерном режиме IIS7 или локально в IIS Express, вам может потребоваться добавить следующий обработчик в раздел <system.webServer>:

<handlers>
    <add name="MiniProfiler" path="mini-profiler-resources/*" verb="*" type="System.Web.Routing.UrlRoutingModule" resourceType="Unspecified" preCondition="integratedMode" />
</handlers>
person Darin Dimitrov    schedule 10.10.2012
comment
Ранее я использовал: NuGet Install-Package MiniProfiler для установки мини-профилировщика, но не добавлял никаких обработчиков. Я попробую добавить это и посмотреть, если что-то изменится. Спасибо. - person Kyle; 10.10.2012
comment
Нет, обработчик должен исправить ошибку в MiniProfiler.MVC3 Nuget. В вашей ситуации это ничего не изменит. Вам необходимо удалить пакет MiniProfiler и установить пакет MiniProfiler.MVC3. - person Darin Dimitrov; 10.10.2012
comment
Спасибо, использование MiniProfiler.MV3 очень помогло. Я смог увидеть, что большая часть времени уходит на процедуру «Найти». Оттуда это ссылка помогла. Так что у меня есть несколько вещей, чтобы попробовать для снижения времени. - person Kyle; 10.10.2012
comment
Да, поиск работает медленно в режиме отладки. Расположение просмотров кэшируется в режиме выпуска (debug="false"), поэтому вы не столкнетесь с этой медлительностью после развертывания приложения. - person Darin Dimitrov; 10.10.2012