2009-07-17 34 views
8

在我的應用程序,在一個ASP.NET MVC應用程序,使得ASP.NET Tracing後,時間計算統計由5000如何在ASP.NET MVC中生成完整的trace.axd?

一個因素我有一個正在秒7和9之間加載一個頁面被關閉。這是由Firebug和IIS日誌文件中的「花費時間」字段所證實的。 (這只是返回給客戶端的頁面,不是任何佈局,DOM或腳本執行。)

但是,當我打開(通過web.config)的應用程序範圍跟蹤並查看跟蹤輸出時,從「Begin PreInit」到「End Render」的取值小於0.001秒。

我認爲這是因爲Trace.axd是以WebForms爲基礎構建的,而MVC繞過了傳統的頁面生命週期。

但即使我在OnActionExecuting/OnActionExecuted的開始和結尾處添加自定義軌跡,時間仍然少於0.1秒。

有誰知道在ASP.NET MVC中我需要掛鉤才能讓trace.axd輸出報告準確的執行時間嗎?

回答

7

這可能是行動方法本身的時間不是執行的重要組成部分。嘗試檢查OnResultExecuting/OnResultExecuted之間的時間。這基本上是在HTML中實際渲染頁面的時間,而OnActionExecuting/OnActionExecuted是(基本上)爲視圖設置數據的時間。

請注意,如果您使用的是LINQ,則數據查詢本身可能會被延期,直到頁面呈現(模型枚舉)。也就是說,即使在執行結果時花費了時間,緩慢程度也可能不是頁面複雜度而是數據訪問的原因。

+1

+1關於延遲加載的好處 – RedFilter 2009-07-17 21:05:06