Приложение ASP.NET - идеи о том, как его ускорить - PullRequest
2 голосов
/ 01 декабря 2011

Это очень общий вопрос, поэтому я не буду предоставлять какой-либо код, поскольку мой проект довольно большой.

У меня есть проект ASP.NET, который я поддерживал и добавлял к вамуже год.Всего около 30 страниц, каждая из которых в основном содержит пару gridview и SqlDataSource, и обычно в коде не более 10-15 методов.Существует также довольно здоровенный dbml-файл LINQ-to-SQL, содержащий около 40-50 таблиц.

Приложение компилируется за 30-40 секунд, что, я полагаю, не так уж и плохо - но основнойпроблема в том, что при развертывании загрузка страниц медленнее, чем в других приложениях на одном сервере и в пуле приложений - загрузка простой страницы может занять около 10 секунд.Я уверен, что проблема не связана с какой-либо конкретной страницей - кажется, это проблема глобального приложения.

Мне просто интересно, есть ли какие-либо настройки в web.config и т. Д., Которые я могу использоватьчтобы ускорить процесс?Или просто общие советы по распространенным «ошибкам» или проблемам, с которыми сталкиваются разработчики, чем это может быть вызвано.Мое приложение близко к завершению, и проблемы со скоростью действительно портят мнение клиента.

Ответы [ 3 ]

3 голосов
/ 01 декабря 2011

В качестве первого шага выясните источник проблемы на стороне приложения или базы данных.

Сторона применения:

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

Сторона базы данных:

Используйте Sql Profiler, чтобы увидеть, что именно требуется много времени для выполнения

Полезные ссылки:

2 голосов
/ 01 декабря 2011

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

<compilation debug="false" targetFramework="4.0">

Несколько других:

  • Не включатьсостояние сеанса или состояние просмотра, где вы его не используете
  • Используйте выходное кэширование, где это возможно, рассмотрите уровень кэширования в целом, то есть для запросов к базе данных (memcached, redis и т.CSS
  • Сократить JavaScript
0 голосов
/ 01 декабря 2011

Что теперь делать:

  1. Посмотрите на загрузку страницы в инструментах разработчика Firebug или Chrome.Убедитесь, что вы не отправляете огромную полезную нагрузку по сети.
  2. Включите вывод трассировки, чтобы увидеть, как сервер тратит свое время.
  3. Проверьте пропускную способность сети на вашем сервере.

Как избежать этого в будущем:

Помните, что скорость - это особенность.Если ваше приложение медленное как собака, клиенты не могут не думать, что оно отстой.Это означает, что вы хотите как можно быстрее запускать свое приложение на «производственном» оборудовании и регулярно развертывать его, чтобы уловить проблемы с производительностью по мере их появления.Нелепо иметь почти готовое приложение, которое занимает 10 секунд, чтобы доставить страницу.Надеюсь, вам повезет и вы сможете исправить большинство из этого с помощью config.Если вам не повезло, вам может потребоваться серьезный рефакторинг.

Например, если вы использовали ViewState, притворяясь, что оно волшебное и бесплатное, вам, возможно, придется переработать часть этой зависимости.

Держите перфоратор на коротком поводке.Ваше приложение будет быстрым, и люди будут думать, что вы классные.

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