поиск узких мест в производительности в ASP.NET - PullRequest
1 голос
/ 24 августа 2009

У нас есть MSSQL, несколько веб-сервисов на C #, немного ASP.NET и немного AJAX. У нас ужасное время загрузки, обычно 2-3 секунды для обновления страницы, иногда гораздо больше. Понятия не имею, с чего начать.

Какие существуют инструменты профилирования, чтобы определить, где находятся самые большие узкие места?

Ответы [ 7 ]

4 голосов
/ 24 августа 2009

Ваша лучшая ставка ... как я уже говорил миллион раз ... это набор инструментов Красные Ворота .

ANTS Performance Profiler - это инструмент для вас.

Для профилирования SQL всегда можно использовать встроенный профилировщик, который поставляется с SQL Server.

2 голосов
/ 24 августа 2009

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

Если нет, то я уверен, что люди порекомендуют множество хороших инструментов, таких как SQL Profiler, Visual Studio Profiler или просто с помощью Trace = true на страницах ASP .Net. Для AJAX я нахожу отладчик JavaScript, такой как Firebug, полезный для наблюдения за тем, что происходит за кулисами.

2 голосов
/ 24 августа 2009

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

В коде C #, который возвращает результаты от вызова веб-службы или базы данных, оберните вызов кодом, чтобы определить, сколько времени займет вызов. Запишите это в какой-нибудь файл журнала, отладочный вывод или прямо на получившуюся страницу. Делайте подобные вещи для других ситуаций, которые кажутся подозрительными.

1 голос
/ 24 августа 2009

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

Инструменты Red Gate также могут быть полезны, хотя, если вы не уверены, что они говорят вам исправить, возможно, вы захотите начать с более базового уровня. Если это база данных, то SQL Server profiler - ваш друг. Несколько основных следов, обращающих особое внимание на продолжительность и чтение, укажут вам правильное направление или, по крайней мере, помогут вам определить проблемные области.

На веб-странице флаги трассировки могут быть особенно полезны.

Удачи! Dan

1 голос
/ 24 августа 2009

Jetbrains имеет продукт под названием dotTrace , который контролирует производительность и память.

0 голосов
/ 25 августа 2009

Подробнее о том, что сказал @Juri, также получите плагин YSlow для Firebug.

Несколько вещей, к которым я обращаюсь, чтобы зафиксировать скорость:

  1. Объедините все CSS-файлы в один (и уменьшите)
  2. Объедините все файлы Javascript в один (и уменьшите)
  3. Сколько изображений у вас на странице? Рассмотрите возможность использования спрайтов.
  4. Какие-нибудь 404 на странице?

Кроме того, вы пытались просто использовать Trace = "true".

0 голосов
/ 24 августа 2009

Google Page Speed ​​ - плагин Firebug - также может быть возможностью отслеживать, что тратит ваше время при загрузке страниц ASPX.

Кстати, часто также огромный ViewState может быть проблемой на страницах Aspx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...