我需要捕獲ASP.net在我的應用程序中執行每個頁面請求所需的時間量,但我需要排除任何網絡延遲。我目前通過使用StopWatch類捕獲渲染時間,並在頁生命週期的OnInit方法期間啓動秒錶,並在Unload方法完成後停止它。看來,卸載方法包括將請求發送到客戶端所需的時間,因此包括任何互聯網/網絡延遲。我可以在頁面生命週期中停止秒錶的最後一個可能點是什麼,它不包括將請求發送到客戶端所需的時間。它會直接在Unload事件之前嗎?捕獲ASP.Net服務器執行時間沒有網絡延遲
相關問題:ASP.net在開始發送給客戶端之前是否完成響應?還是它開始異步發送,而響應正在形成?
我目前使用ASP.Net 2.0與IIS 5。
我有這樣的代碼在一個類中,所有我的網頁繼承:
readonly Stopwatch _serverExecutionTime = new Stopwatch();
protected override void OnInit(EventArgs e)
{
_serverExecutionTime.Start();
base.OnInit(e);
}
protected override void OnUnload(EventArgs e)
{
_serverExecutionTime.Stop();
base.OnUnload(e);
}
UPDATE
我試圖在的OnRender方法結束拍攝的執行時間,在開始的OnUnload方法和OnUnload方法的末尾。在所有三種情況下,時間差異最多爲1毫秒。即使從歐洲的客戶到美國的服務器進行測試,時間也是一樣的。所以我認爲我在這裏錯過了一些東西。
我同意在同一網段上提出請求。但就我的代碼示例而言,捕獲base.OnUnload之前的最佳時間是什麼? – Jon 2010-11-19 18:54:17
@Jon:我會在卸載事件的開始或渲染事件結束時進行測試。 – NotMe 2010-11-19 20:16:57
我試圖捕獲卸載事件之前和之後的值。即使在美國和英國的服務器上,這兩次都幾乎一樣。最多的時間是1毫秒。不幸的是,這並不能幫助我。你還有其他建議嗎? – Jon 2010-11-22 14:11:43