ASP.NET MVC渲染看起来很慢

我在Visual Studio中创build了一个全新的MVC4 Web应用程序,除此之外,还为它添加了一个Home控制器和一个“Hello world”索引视图。 然后,我安装了MiniProfiler NuGet包,并在_Layout.cshtml放置了必要的几行_Layout.cshtml 。 当我以发行模式(在IIS中托pipe)运行站点时,这就是我所得到的:

MVC渲染图片

渲染时间因页面负载不同而不同,但是130ms的速度大概和它一样快。 这对我来说似乎有点慢,因为我看到其他人以30ms或更快的速度渲染页面。 任何想法,为什么渲染将是一个全新的空MVC4项目这慢? 我的处理器是Intel Core i5-2400,机器有16GB RAM。

顺便说一句,这不是第一次加载页面; 在获得这个130ms的结果之前,我重新加载了这个页面几次。

更新:
我遵循PSCoder的build议(删除RazorViewEngine之外的所有东西),并将渲染时间减半:

MVC渲染图片2

这真的很好,但对于页面的主Render动作,我仍然可以达到70ms或更高。 理想情况下,我想减半或更好。

具体来说,我想问一下:

  • 这个渲染时间是否过于缓慢或者是我的机器的平均时间?
  • 有什么办法可以加快速度吗?

这可以帮助改善ASP.NET MVC相关的性能问题,您可以做的一个性能改进是清除所有视图引擎并添加您使用的一个或多个。 例如说: – RazorViewEngine 。 MVC在默认的WebformsRazor视图引擎中注册2个视图引擎,因此清除和添加单独使用的视图引擎可以提高查找性能。

你可以在global.asax Application_Start添加这个。

  ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new RazorViewEngine()); 

为了完全利用视图查找caching,从而再次获得性能增益,在释放模式下编译代码,并确保您的web.config文件configuration了<compilation debug="false" /> ,以便查看caching。

添加@PSCoder的答案 – 我们只检查.CSHTML文件

 ViewEngines.Engines.Clear(); IViewEngine razorEngine = new RazorViewEngine() { FileExtensions = new string[] { "cshtml" } }; ViewEngines.Engines.Add(razorEngine); 

另外,确保你在Release Mode运行 – 这是绝对关键的,因为ASP / Razor / MVC在发布模式下应用了一些非常积极的caching

您的Web.Config文件中的<compilation targetFramework="4.0" debug="false">

Sam Saffron / Stack Overflow也研究了视图渲染性能:

http://samsaffron.com/archive/2011/08/16/Oh+view+where+are+thou+finding+views+in+ASPNET+MVC3+