私はメンテナンスが必要な誰かが書いたWebサイト(ASP.Net 2.0)を継承しました。
コードは恐ろしいものではありませんが、Webサイトを信じられないほど遅くするいくつかの事柄があります。ASP.Netページのグローバルタイミング
私はこれを監視するアイデアがあります。経験豊かな開発者がそのことを考えてみたいです。
私の目的は、ページの読み込みに時間がかかり過ぎるときに、それらのスポットに注意を集中することです。
Global.asaxでPreRequestHandlerExecuteイベントとPostRequestHandlerExecuteイベントをフックし、 "Pre"でStopWatchを作成し、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を取得し、これはおそらく、ストップウォッチ
より軽いことになるだろう、それを格納する方が良いかもしれ私自身のページから、そしてそこに時間がありますが、私は数十ページを通過してそれらをすべて変更したくありません。
ご意見をいただければ幸いです! ありがとう!
そうですが、私はいつもトレースを見たくはありません。私は見つけたボトルネックを修正し、ウェブサイトを稼働させて、特に何かが遅いときに私に電子メールを送ってもらいたい。私はトレースでそれをすることはできません、と私は思います。 –
それは良い点です、あなたはトレースでそれをすることができませんでした。 –