Я изучаю инструменты профилирования времени выполнения для веб-приложения (WebForms).
Я рассмотрел MiniProfiler и Glimpse.
В MiniProfiler легко (фактически, это единственный способ?) Регистрировать сообщения профилирования:
var profiler = MiniProfiler.Current;
using (profiler.Step("Doing complex stuff"))
{
using (profiler.Step("Step A"))
{ // something more interesting here
Thread.Sleep(100);
}
using (profiler.Step("Step B"))
{ // and here
Thread.Sleep(250);
}
}
В Glimpse вы получаете автоматическое профилирование жизненного цикла запроса, но я не уверен, какой самый простой способ профилировать сценарии пользовательской бизнес-логики.
Я прочитал здесь, что Glimpse поддерживает System.Diagnostics.(Trace|Debug).Trace*()
на своей вкладке «Трассировка», но показывает только моменты времени, но не похоже, профилируют вложенные области. Было бы неплохо иметь возможность отслеживать пользовательские данные более структурированным способом - например, на вкладке «Временная шкала».
Итак, вопрос в том, могу ли я (надеюсь, легко) получить структурированное, настраиваемое ведение журнала в стиле MiniProfiler в Glimpse?
PS. Я знаю, что есть расширение Glimpse для отображения данных MiniProfiler, но похоже, что оно заброшено.
PPS. Я был приятно удивлен, увидев, что Glimpse работает (почти) из коробки в моем проекте WebForms (в классическом конвейерном режиме IIS!). AFAIK, MiniProfiler не очень хорошо работает с этой конфигурацией, он смещен в сторону MVC.