2011-09-14 107 views
2

我正在做一個很好的性能調整asp.net MVC 2應用程序(webforms作爲視圖引擎,linq2SQl作爲orm層)。 我正在使用mvc mini-profiler來分析頁面呈現。 我沒有使用(目前)任何輸出緩存。ASP.NET MVC頁面呈現性能問題

我注意到我的網站幾乎所有頁面上有點奇怪的行爲。

當我第一次打了一個頁面大約需要200毫秒渲染,在那裏我有關於分貝查詢時間15ms的(到一個存儲過程的調用)。

所有後續命中的同一頁面都在約20ms中呈現,其中查詢保持約15ms。所以在這種情況下,我假設頁面呈現在大約6ms

如果我不打約5分鐘頁面(並沒有任何其他要求),我現在試着打它需要200ms的在所有後續調用呈現相同的頁面訂單18-20ms。 另外我已經驗證沒有IIS應用程序池回收已發生

懷疑MVC框架中的某處存在一些緩存,這些緩存在幾分鐘後無效,需要進行微調。

任何想法?

+0

那你'<編譯調試= 「真」>'在web.config中設置?如果您有debug = true,則更改爲false。 –

+0

調試屬性的默認值是False。 –

回答

2

webforms視圖位置的默認緩存時間爲15分鐘左右。您可以增加此像這樣:

foreach (var viewEngine in ViewEngines.Engines.OfType<VirtualPathProviderViewEngine>()) 
{ 
    viewEngine.ViewLocationCache = new DefaultViewLocationCache(TimeSpan.FromHours(24)); 
} 

更多詳情,請訪問:http://weblogs.asp.net/rashid/archive/2009/04/23/asp-net-mvc-view-location-and-performance-issue.aspx

+0

這當然是一個改進,但它不能解決我的問題,謝謝。 –