#asp.net #glimpse
#asp.net #проблеск
Вопрос:
Я использовал glimpse, чтобы попытаться решить некоторые проблемы с медленной страницей, только чтобы обнаружить, что причиной является glimpse. Запросы страницы составляют более 30000 секунд, без проблеска они выполняются мгновенно. Итак, я преследовал призраков.
Как я могу использовать проблеск, чтобы увидеть, сколько времени все занимает, когда это вызывает такие различия в скорости.
У меня что-то настроено неправильно или это всегда так медленно
Комментарии:
1. Только на некоторых страницах все работает медленнее? Используют ли эти страницы какие-либо двоичные параметры для sql-запроса? Требуется ли время на сервере или на клиенте? Есть ли какая-либо сложная / необычная привязка к модели? Просматриваете ли вы модели своих моделей данных, и если да, то есть ли какие-либо отложенные загруженные свойства?
2. Дальнейшая отладка с включенным проблеском приводит к тому, что хэши возвращают десятки тысяч записей, которые замедляют все. Без проблеска эти хэши не создаются. вот пример puu.sh/9wYLR/7ee28f3b14.png этот код никогда не запускается, когда glimpse не включен.
3. Используется ли этот хэш-набор / модель EF или какова ваша технология доступа к данным?
4. Нет, этот фрагмент кода никогда не выполняется, если glimpse не запущен.
5. Используется ли он в модели ожидания или в качестве модели представления?
Ответ №1:
Обновите свой glimpse
элемент web.config, чтобы в нем были следующие записи:
<glimpse defaultRuntimePolicy="On" endpointBaseUri="~/Glimpse.axd">
<tabs>
<ignoredTypes>
<add type="Glimpse.Mvc.Tab.ModelBinding, Glimpse.Mvc3" />
<add type="Glimpse.Mvc.Tab.Metadata, Glimpse.Mvc3" />
</ignoredTypes>
</tabs>
<inspectors>
<ignoredTypes>
<add type="Glimpse.Mvc.Inspector.ModelBinderInspector, Glimpse.Mvc3" />
</ignoredTypes>
</inspectors>
</glimpse>
Комментарии:
1. Это сработало для меня, у меня было несколько свойств отложенной загрузки в моей модели представления, одно из которых вызывало 2-секундный вызов базы данных. с этими записями в web.config это свойство больше не загружается. есть ли шанс, что вы могли бы предоставить некоторую информацию о том, что это на самом деле делает?
2. Я поиграл с этим, и вам не нужно отключать вкладку метаданных, это только тривиальная разница в скорости. Однако привязка к модели … в среднем от 66 мс до 1000 мс
3. Разные вкладки имеют разные эффекты. Важно учитывать, где все идет медленно. Это означает, что в профилировании, которое мы сделали, самая медленная часть Glimpse в типичном приложении — это преобразование данных в формате json для клиента — обратите внимание, это не происходит в потоке исходных запросов. Так что, если вы видите какие-либо проблемы, стоит проверить, откуда они берутся.
Ответ №2:
Перейдите /Glimpse.axd
и снимите все дополнения / вкладки Glimpse. Это даст вам конфигурацию XML, необходимую для копирования и вставки в ваш web.config. В моем случае это были маршруты, вероятно, из-за широкого использования атрибутивной маршрутизации. Другие упоминали кеш и метаданные, поэтому начните с игнорирования всех, затем прокомментируйте несколько за раз, пока не найдете то, что замедляет Glimpse.
Обратите внимание, что приведенная ниже конфигурация может не работать для вас, если у вас установлены другие дополнения или версии.
<glimpse defaultRuntimePolicy="On" endpointBaseUri="~/Glimpse.axd">
<tabs>
<ignoredTypes>
<!-- <add type="Glimpse.Ado.Tab.SQL, Glimpse.Ado" />-->
<!-- <add type="Glimpse.AspNet.Tab.Cache, Glimpse.AspNet" />-->
<!-- <add type="Glimpse.AspNet.Tab.Configuration, Glimpse.AspNet" />-->
<!-- <add type="Glimpse.AspNet.Tab.Environment, Glimpse.AspNet" />-->
<!-- <add type="Glimpse.AspNet.Tab.Request, Glimpse.AspNet" />-->
<add type="Glimpse.AspNet.Tab.Routes, Glimpse.AspNet" />
<!-- <add type="Glimpse.AspNet.Tab.Server, Glimpse.AspNet" />-->
<!-- <add type="Glimpse.AspNet.Tab.Session, Glimpse.AspNet" />-->
<!-- <add type="Glimpse.Core.Tab.Timeline, Glimpse.Core" />-->
<!-- <add type="Glimpse.Core.Tab.Trace, Glimpse.Core" />-->
<!-- <add type="Glimpse.Mvc.Tab.Execution, Glimpse.Mvc5" />-->
<!-- <add type="Glimpse.Mvc.Tab.Metadata, Glimpse.Mvc5" />-->
<!-- <add type="Glimpse.Mvc.Tab.Views, Glimpse.Mvc5" />-->
<!-- <add type="Glimpse.NLog.NLogTab, Glimpse.NLog" /> -->
</ignoredTypes>
</tabs>
<runtimePolicies>
</runtimePolicies>
</glimpse>