Отличная презентация об улучшении производительности ASP.NET MVC приложения:

На презентации — простейшее ASP.NET MVC приложение "DUGG". Используемые технологии:

  • ASP.NET MVC 1.0 (+MVC Futures)
  • Linq to SQL
  • IIS 7.0
  • SQL Server

Приложение построено по стандартным routes.MapRoute, с использованием методов Html.ActionLink. Дальше проводятся однопоточные тесты на нагрузку. Результат — 8 запросов в секунду. Для выявления проблемных (плохо оптимизированных) мест приложения используется JetBrain dotTravce профайлер.

Вот краткое изложение методов оптимизации 8 методов оптимизации ASP.NET MVC приложения:

  1. Убирайте все expression-выражения из раутов (routes) и экшенов (actions). 8 -> 25,5 запросов в секунду.

  2. Используйте RouteValueDictionary вместо анонимных параметров в методе Html.RouteLink. 25,5 -> 27 запросов в секунду.

  3. Используйте только скомпилированный код Linq to SQL. 27 -> 52 запросов в секунду.

  4. Уменьшайте количество вызовов Html.RenderPartial (передавайте уже готовую, подгруженную модель один раз). 52 -> 61,5 запросов в секунду.

  5. Кэшируйте рендеринг Url'ов. 61,5 -> 76 запросов в секунду.

  6. Кэшируйте малообновляемые данные на долгий период. 76 -> 153 запросов в секунду.

  7. Кэшируйте основные данные. 153 -> 400 запросов в секунду.

  8. Да, и не забудьте изменить аттрибут debug в секции compilation файла web.config на значение false.