2012-02-22 122 views
2

測量ASP.NET頁面中代碼運行時間的最佳方式是什麼?定時ASP.NET頁面加載

這是我的代碼,試圖定時頁面加載和寫入日誌。

private Stopwatch PageTimer = null; 

    protected void Page_Init(Object Src, EventArgs E) 
    { 
     if (!IsPostBack) 
     { 
      PageTimer = new Stopwatch(); 
      PageTimer.Start(); 


     } 
    } 

    protected override void OnPreRender(EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      PageTimer.Stop(); 
      Logger.SectionEnd("PageTimer", PageTimer, "", true); 
     } 
     base.OnPreRender(e); 
    } 

回答

2

我建議你使用HttpModule。有一個你可以在

HttpModule For Timing Requests (很老了,我知道,但仍然有效)

有關的HttpModules一個好處是使用你有他們自行註冊自己,如果「主應用程序」有碼它。然後,在另一個應用程序中使用模塊只需將其複製粘貼到bin文件夾中即可開始操作。

如果「主應用程序」不支持自我註冊的模塊,它可以添加到bin和web.config中以開始操作。

+0

只是擴大了一些... – Asken 2012-02-22 10:42:07

4

您可以試試mvc-mini-profiler

+0

實際上這其實很酷。 – Asken 2012-02-22 08:35:22

+0

它適用於網頁表單嗎? – Stilgar 2012-02-22 09:20:07

+0

是的,它工作得很好:http://stackoverflow.com/a/6322629/29407 – 2012-02-22 09:21:11

1

如果你想的東西簡單,快捷我建議使用Global.asax文件。
你可以通過在網站上選擇新文件來創建這個文件。

Global.asax文件有幾個方法,你應該尋找那些有
的Application_BeginRequest
Application_EndRequest

你可以啓動一個定時器,寫一些日誌,做任何讓它們之間的時間2個請求。
通過做這樣你有確切的時間請求您的服務器上度過的,如果你在Page_Load和page_prerender做你喜歡重定向,認證,會員等東西錯過了

0

如果排除日誌記錄,則可以使用螢火蟲來衡量客戶端的表現。