2

ASP.NETページの実行時間を計算して、ページに表示したいと思います。現在、System.Diagnostics.Stopwatchを使用して実行時間を計算し、その値をログデータベースに保存しています。

ストップウォッチはOnInitで開始され、OnPreRenderCompleteで停止します。これは非常にうまく機能しているようで、ページトレースに示されているものと同様の実行時間を与えています。

問題は、ストップウォッチの停止がライフサイクルの後半であるため、ページに実行時間を表示できないことです。

これを行うための最良の方法は何ですか?

4

3 に答える 3

1

ここでは、Page_Init()メソッドとPage_preRender()メソッドを再定義して、時間の違いを取得する実用的なソリューションを示します。

private int startTime; 

protected void Page_Init(object sender, EventArgs e) 
{ 
    startTime = Environment.TickCount; 
}
protected void Page_PreRender(object sender, EventArgs e) 
{ 
    int endTime = Environment.TickCount; 
    double executionTime = (double)(endTime - startTime) / 1000.0;

    lblLabel.Text = "Page Execution time is " + executionTime + " seconds."; 
}
于 2010-03-23T14:25:19.963 に答える
0

実行時間情報をサーバー(データベース、ファイルシステム、キャッシュ)に永続化し、ajaxまたはjqueryを使用して、サーバーからページの領域に非同期でプルします。

于 2010-03-23T14:25:08.963 に答える
0

レンダリング時間中にストップウォッチから経過時間を取得します。この時点で、ページ実行時間のほとんど(おそらくほとんどすべて)が経過しています。先に進み、現在のストップウォッチを停止し、その番号を使用してDBにログインします。ページに表示されるものと大差ないでしょう。

于 2010-03-23T14:30:49.857 に答える