Всем доброго времени суток. Сегодня я хочу рассказать про ASP.NET MVC MiniProfiler. А первое, что я хочу рассказать, это то, что, вопреки распространённому мнению и названию, этот профайлер вполне можно применять для отладки обычных (не MVC) ASP.NET приложений. Дальше я на примере покажу как это сделать. А пока обо всем по порядку.
Что такое MiniProfiler?
Это способ отладить ASP.NET-приложение на production (или, если вам больше нравится, “приложение, находящееся в промышленной эксплуатации”). И, что важно, не сильно влияя на производительность (то, что это работает на сайтах платформы StackExchange как бы намекает).
Вкратце процесс подключения выглядит так:
- Добавляется ссылка на dll.
- Подключается в “Master Page” или любое другое подходящее место одна строчка по инициализации UI.
- В Global.asax.cs прописываются вызовы по старту и остановке профайлера.
- Либо добавляются вызовы Step(string) там, где вам интересно, либо “сбоку” добавляются фильтры (вроде ProfilingActionFilter), чтобы не модифицировать код.
Опять же вкратце, на выходе получаем в виде небольшой разворачивающейся “закладки” на странице следующие возможности:
- Суммарное время.
- Время на дочерние действия (пункт 4) и запросы к БД.
- Показать/скрыть “тривиальные” запросы (с маленькими затратами времени).
- Переслать ссылку на отчет (данные хранятся в кэше).
Заинтересовались? Тогда продолжим…