Upload
fwdays
View
61
Download
2
Embed Size (px)
Citation preview
Tips & tricks for ASP.NET MVC performanceОстапчук ЕвгенийGlobalLogic
Обо мне
Остапчук Евгений- Team leader at GlobalLogic, telecom and robotics solutions- 12 лет с .NET
- ASP.NET MVC, WCF, WPF и другие умные слова :-)
Когда производительнось критически важна?• Каждый запрос может привести к продаже.
• Медленные запросы «отпугивают» покупателей
• Затраты на инфраструктуру (PROD, DEV или QA) сильно высоки
Обычные способы «тюнинга» ASP.NET MVC• Javascript и css минификация и bundles (в связке с
CDN).
• Объединение картинок/иконок в спрайты
• Кеширование• OutputCacheAttribute над Action, Controller,
View, PartialView• Модели бизнесс логики в Redis, MemCache,
InProc • Кеширование в веб-сервере (не в
приложении)
• Использование асинхронных контроллеров• Включая асинхронную бизнес-логику и
обращение к базам данных
• Купить больше серверов
Чаще всего этих усилий хватает
Но вот пришел большой траффик...• StackOverflow.com
• Делают Sql-запросы напряму из View• Часть данных обрабатывается на GPU
Nvidia с использованием CUDA• Отказались от ASP.NET MVC конвеера,
написали свой
• Booking.com• Используют предрасчеты на десятки
гигабайт RAM
• Mail.Ru• Написали свою базу данных Tarantool
Нестандартные задачи требуют нестандартных решений
Поэтому tips & tricks для каждой задачи, не фреймворки
Время для некоторой магии
ASP.NET MVC конвеер•HttpContextWrapper•HttpRequestWrapper•ControllerContext•RequestContext•ControllerActionInvoker•ActionExecutingContext•ActionExecutedContext•AuthorizationContext•AuthenticationContext•ResultExecutingContext
•ResultExecutedContext•AsyncInvocationWithFilters•WrappedAsyncVoid•ProcessRequestState•ModelBindingContext•ValueProviderCollection•ChildActionValueProvider•FormValueProvider•RouteDataValueProvider•QueryStringValueProvider
•HttpFileCollection•Тонны валидаторов•И так далее
Время для некоторой магии
СпасибоНайти меня можно здесь:
• skype: eugene.ostapchuk
• facebook: https://www.facebook.com/eugene.ostapchuk
• linkedin: https://www.linkedin.com/in/ievgen-ostapchuk-76070535/
• Github: https://github.com/eugeneostapchuk/NetConference.2017.03.25