asp.net сравнивает производительность двух страниц

У меня есть две страницы, и в основном они показывают один и тот же вывод, но их стиль программирования отличается. Я хочу сравнить производительность этих двух страниц, например, сколько времени требуется для загрузки страниц? Если мы выполним операцию «Отправить», то насколько быстро будет страница 1 по сравнению со страницей 2 и другими вещами.

Как я могу сравнить производительность?

Заранее спасибо за помощь.


person Kevin S    schedule 16.07.2012    source источник


Ответы (4)


Самый простой способ — установить для атрибута трассировки страницы значение true и наблюдать за временем выполнения каждого из обработчиков событий страницы в браузере.

Вот пример похожего вопроса:

Измерение времени загрузки страницы ASP.NET

person IrishChieftain    schedule 16.07.2012

Одно дело, сколько времени требуется для отправки, а другое, которое вы можете проверить, — это время рендеринга. Самой простой идеей измерения и сравнения производительности может быть написание тестов кликов (например, с помощью веб-драйвер), если у вас их нет для обеих страниц, и измерьте, насколько быстро может быть выполнен тест (вероятно, запуская его несколько раз подряд). Такой подход позволяет вам не просто измерить, сколько времени требуется для рендеринга самого html, но и сколько времени браузер загружает этот html (и связанный с ним ресурс) и обрабатывает его.

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

person Volodymyr Shtenovych    schedule 16.07.2012

Для страниц, которые вы пытаетесь синхронизировать, поддерживайте два объекта DateTime dtStart и dtEnd. Установите для dtStart значение DateTime.Now в методе OnPreInit и dtEnd = DateTime.Now в конце метода Render. Затем вы можете рассчитать TimeSpan из двух временных меток и записать время везде, где вы поддерживаете время загрузки.

person Babak Naffas    schedule 16.07.2012

На обеих страницах добавьте этот режим трассировки:

<%@ Page Language="VB" Trace="True" TraceMode="SortByTime" %>

когда страницы отображаются, в нижней части страницы вы увидите дамп всех таймингов каждого события страницы ASP.NET. Затем вы можете увидеть, где разница во времени.

Если вы заинтересованы в измерении времени рендеринга на стороне клиента, вам нужно использовать профилировщик браузера. Например, в IE 9 нажмите F12, перейдите в инструмент разработчика, перейдите в Profiler и нажмите «Пуск». Затем обновите страницу. затем Стоп. затем он покажет вам, где находится дорогая функция javascript.

Google Chrome и Firebug имеют аналогичный инструмент, даже более мощный.

Помогает?

person oazabir    schedule 18.07.2012