设置debug = false实际导致远程SLOWER渲染?

时间:2013-04-30 14:30:54

标签: asp.net-mvc performance debugging

我有一个奇怪的问题;通常,当您在web.config文件中设置debug=false并在发布模式下编译Web应用程序时,它会提高性能。对于我网站上的某些网页,主要会降低渲染速度。这是调试模式下的页面:

Debug mode on

...这是发布模式下的同一页面,调试模式已关闭

Debug mode off

不,我没有把那两个搞糊涂。什么在地球上可能导致调试模式更快地渲染页面3次(如果你忽略控制器和SQL性能,它会使页面更快地渲染五次)?!是否有任何明显的错误配置?

1 个答案:

答案 0 :(得分:8)

简短回答:问题是Microsoft.AspNet.Web.Optimization beta2;它正在做一些极其低效的事情,并会在你的页面渲染时间上添加一秒。如果您正在使用它,请升级。现在


我接受了Steven的建议,并使用MiniProfiler查看导致视图减速的原因。这是jQuery UI JS的System.Web.Optimization.Scripts.Render()渲染:

Rendering time before

根据this question的建议(同样,this question似乎解决了这个问题),我升级了:

PM> Update-Package Microsoft.AspNet.Web.Optimization
Updating 'Microsoft.AspNet.Web.Optimization' from version '1.0.0-beta2' to '1.0.0' in project 'Bacp.Assess.Web'.

这会升级Microsoft.AspNet.Web.OptimizationWebGrease。升级后,这是同一页面:

Rendering time after

嗯。 :-)我刚刚将页面的渲染时间缩减了99.9%。我网站上的其他页面渲染速度也快得多。我不知道beta {2}正在做什么,但它就像一个围绕ASP.NET的球和链!