ASP.NET MVC页面呈现性能问题

时间:2011-09-14 12:32:57

标签: asp.net-mvc performance asp.net-mvc-2 mvc-mini-profiler

我正在对asp.net MVC 2应用程序进行良好的性能调整(webforms作为视图引擎,linq2SQl作为orm层)。 我正在使用mvc mini-profiler来分析页面渲染。 我现在没有使用任何输出缓存。

我注意到我网站的几乎所有页面都有一些奇怪的行为。

当我第一次点击页面时,需要 200ms 进行渲染,其中我有大约 15ms 的db查询时间(调用存储过程)。

对同一页面的所有后续匹配都会在大约 20ms 中呈现,其中查询保持为大约15ms。所以在这种情况下,我假设页面呈现在 6ms

如果我没有点击页面大约 5分钟(并且没有任何其他请求),我现在尝试点击同一页 200ms 18-20ms 的顺序呈现所有后续调用。 此外,我已经验证没有发生IIS应用程序池回收

怀疑MVC框架中的某个地方有一个缓存,在几分钟后失效并且需要进行微调。

有什么想法吗?

1 个答案:

答案 0 :(得分: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