Я только что унаследовал веб-сайт (ASP.Net 2.0), написанный кем-то другим, который мне нужно поддерживать.
Код не ужасен, но он имеет ряд вещей, которые делают сайт невероятно медленным.Глобальное время страниц ASP.Net
У меня есть идея контролировать это, и я хочу посмотреть, что думают об этом более опытные разработчики.
Моей целью сейчас является выяснить, когда страницы занимают слишком много времени для загрузки, чтобы сосредоточить внимание в этих местах.
Я собираюсь подключить события PreRequestHandlerExecute и PostRequestHandlerExecute в Global.asax и создать StopWatch в «Pre», прикрепить его к HttpContext.Items и прочитать его в «Post», и если запрос занял больше чем, скажем, 100 мс, он сообщит мне, чтобы сообщить мне.
Некоторые «псевдо код» для того что бы быть:
protected void Application_PreRequestHandlerExecute(Object sender, EventArgs e) {
System.Diagnostics.Stopwatch theTimer = new Stopwatch();
theTimer.Start();
HttpContext.Current.Items.Add("RequestTimer", theTimer);
}
protected void Application_PostRequestHandlerExecute(Object sender, EventArgs e) {
Stopwatch theTimer = (Stopwatch) HttpContext.Current.Items["RequestTimer"];
System.Diagnostics.Debug.WriteLine(theTimer.ElapsedMilliseconds + "@: " + HttpContext.Current.Request.RawUrl)
}
Что вы думаете о таком подходе?
Можно ли это сделать?
Будет ли мой сайт сканировать на колени?
Есть ли лучший способ сделать это?
Некоторые мысли:
- Это может быть лучше, чтобы захватить DateTime.Now.Ticks и хранить ту, которая, вероятно, будет легче, чем StopWatch
- Я знаю, что было бы лучше, чтобы иметь наследуют все страницы от моей страницы и времени, но я не хочу проходить через десятки страниц и менять их все.
Любые мысли очень ценятся! Спасибо!
Правильно, но я не хочу смотреть на отслеживание все время. Я хочу исправить узкие места, которые я нахожу, а затем пусть веб-сайт работает, и пусть он отправляет мне электронное письмо, когда что-то в частности происходит медленно. Думаю, я не могу это сделать с отслеживанием. –
Это хороший момент, вы не могли бы сделать это с помощью трассировки. –