设置 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.OptimizationWebGrease。这是我升级后的同一页面:

嗯。 :-) 我刚刚将页面的渲染时间缩短了 99.9%。我网站上的其他页面也呈现得更快。我不知道Microsoft.AspNet.Web.Optimization beta2 在做什么,但它就像一个围绕 ASP.NET 的球和锁链!

【讨论】:

beta3 的发行说明是“错误修复,以纠正在每个请求上重建的捆绑包”。听起来这将是一个缓慢的操作。 nuget.org/packages/Microsoft.AspNet.Web.Optimization/…

以上是关于设置 debug=false 实际上会导致渲染速度慢得多?的主要内容,如果未能解决你的问题,请参考以下文章

生产中的 Django:设置 DEBUG = False 导致“服务器错误(500)”

宝爷Debug小记——Cocos2d-x(3.13之前的版本)底层BUG导致Spine渲染花屏

为啥 DEBUG=False 设置使我的 django 静态文件访问失败?

部署到 heroku 更改 DEBUG = False 导致 500 错误

electron如何解决白屏问题

IntelliJ IDEA (Mac) 运行速度优化