維持する必要のある他の誰かによって作成されたWebサイト(ASP.Net 2.0)を継承しました。
コードはひどいものではありませんが、ウェブサイトの実行を信じられないほど遅くする多くのことがあります。
私はこれを監視する考えを持っており、より経験豊富な開発者がそれについてどう思っているかを見たいと思っています。
今の私の目的は、ページの読み込みに時間がかかりすぎる時間を見つけて、それらの場所に注意を向けることです。
Global.asaxでPreRequestHandlerExecuteイベントとPostRequestHandlerExecuteイベントをフックし、「Pre」でストップウォッチを作成し、それをHttpContext.Itemsにアタッチして、「Post」で読み取ることを考えています。 100ms、それは私に知らせるために私に報告します。
そのためのいくつかの「擬似コード」は次のようになります。
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よりも軽量になるでしょう。-
すべてのページを自分のページから継承する方がよいと思います。時間はありますが、数十ページを調べてすべてを変更したくありません。
どんな考えでも大歓迎です!ありがとう!