2011-09-14 75 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

这当然是一个改进,但它不能解决我的问题,谢谢。 –