设置 debug=false 实际上会导致渲染速度慢得多?
Posted
技术标签:
【中文标题】设置 debug=false 实际上会导致渲染速度慢得多?【英文标题】:Setting debug=false actually causing far SLOWER rendering? 【发布时间】:2013-04-30 14:30:53 【问题描述】:我有一个奇怪的问题;通常,当您在 web.config 文件中设置 debug=false
并在发布模式下编译您的 Web 应用程序时,它会提高性能。对于我网站上的某些页面,主要会减慢渲染速度。这是调试模式下的页面:
...这是发布模式下的同一页面,调试模式关闭:
不,我没有把这两个弄糊涂。到底是什么导致调试模式将页面渲染速度提高了 3 倍(如果忽略控制器和 SQL 性能,它会将页面渲染速度提高 5 倍)?!有什么明显我可能配置错误的地方吗?
【问题讨论】:
1422.5 毫秒的发布时间是否相当一致?还是第一次? 您也可以使用 MiniProfiler 在您的视图上分析代码。我很想在你的一些代码周围添加一些分析代码,看看你是否可以隔离遇到减速的地方。 在编译站点时对 mvc 的最大提升是它不是在第一次点击时动态编译并且缓存了剃刀视图。 show time with children 应该显示 FindView 处理程序中的速度增加。除此之外,还要看其他东西,比如发布数据库配置是否相同等 【参考方案1】:简答:问题是Microsoft.AspNet.Web.Optimization
beta2;它正在做一些非常效率低下的事情,并且会在您的页面渲染时间上增加一秒钟。如果您正在使用它,请升级。现在。
我听取了 Steven 的建议并使用 MiniProfiler 查看导致视图变慢的原因。这是 jQuery UI JS 的 System.Web.Optimization.Scripts.Render()
渲染:
根据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.Optimization
和WebGrease
。这是我升级后的同一页面:
嗯。 :-) 我刚刚将页面的渲染时间缩短了 99.9%。我网站上的其他页面也呈现得更快。我不知道Microsoft.AspNet.Web.Optimization
beta2 在做什么,但它就像一个围绕 ASP.NET 的球和锁链!
【讨论】:
beta3 的发行说明是“错误修复,以纠正在每个请求上重建的捆绑包”。听起来这将是一个缓慢的操作。 nuget.org/packages/Microsoft.AspNet.Web.Optimization/…以上是关于设置 debug=false 实际上会导致渲染速度慢得多?的主要内容,如果未能解决你的问题,请参考以下文章