Профайлинг ASP сайтов средствами ASP

Всегда хочется отпимизировать до невозможного и знать - какой контроол и какая функция все отжирает, и всякий раз юзаем сторонние профайлеры...
Ну а предположим, что ну не вариан юзать профайлер? На локали под стресс тулзами отлично сайт работает, а на сервере нет, и нет возможности профайлинга, в этом случае может помочь спец фича асп - Trace!

у страницы, которую хотите профайлить, просто установите свойство Trace="true" и в самом низу страницы увидите более-менее приемлемую статистику.

пример включения:
<%@ Page Trace="true" %>

результат на странице (без подробной статистики):
Сведения о запросе

Идентификатор сеанса: m1qf1nbnutjt5n45odqjsh55 Тип запроса: GET
Время запроса: 25.09.2009 0:30:21 Код состояния: 200
Кодирование запроса: Unicode (UTF-8) Кодирование ответа: Unicode (UTF-8)
Информация трассировки

Категория Сообщение С первой(ых) С последней(их)
aspx.page Begin PreInit
aspx.page End PreInit 0,000219683091741815 0,000220
aspx.page Begin Init 0,00026690469090127 0,000047
aspx.page End Init 0,000342356593906053 0,000075
aspx.page Begin InitComplete 0,000632872084387051 0,000291
aspx.page End InitComplete 0,000669828118511842 0,000037
aspx.page Begin PreLoad 0,000700624813615835 0,000031
aspx.page End PreLoad 0,000740147238999292 0,000040
aspx.page Begin Load 0,000772483768858485 0,000032
aspx.page End Load 0,000883351871232858 0,000111
aspx.page Begin LoadComplete 0,000926467244378448 0,000043
aspx.page End LoadComplete 0,000956750661230708 0,000030
aspx.page Begin PreRender 0,000987034078082967 0,000030
aspx.page End PreRender 0,00262439170111191 0,001637
aspx.page Begin PreRenderComplete 0,0117612578602148 0,009137
aspx.page End PreRenderComplete 0,0161533798602959 0,004392
aspx.page Begin SaveState 0,0285818994477639 0,012429
aspx.page End SaveState 0,0297614128702469 0,001180
aspx.page Begin SaveStateComplete 0,0298173601996858 0,000056
aspx.page End SaveStateComplete 0,0298363514949999 0,000019
aspx.page Begin Render 0,0298527763990554 0,000016
aspx.page End Render 0,0443421081672322 0,014489

уже тут можно понять на каком из этапов идут тормоза, а в подробной статистике отображается время от рендеринга контролов, которое зависит от обрабатываемых данных тоже.

кста, ради эксперимента - попробовал измерить трейсы между биндингов GridView и ListView: в 2 раза вышло быстрее, потому советую поменьше asp контролов юзать на сайте, а при возможности заменять их простым html.

Комментариев нет:

Отправка комментария

Можете оставить свой комментарий