【问题标题】:Setting debug=false actually causing far SLOWER rendering?设置 debug=false 实际上会导致渲染速度慢得多?
【发布时间】:2013-04-30 14:30:53
【问题描述】:

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

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

不,我没有把这两个弄糊涂。到底是什么导致调试模式将页面渲染速度提高了 3 倍(如果忽略控制器和 SQL 性能,它会将页面渲染速度提高 5 倍)?!有什么明显我可能配置错误的地方吗?

【问题讨论】:

  • 1422.5 毫秒的发布时间是否相当一致?还是第一次?
  • 您也可以使用 MiniProfiler 在您的视图上分析代码。我很想在你的一些代码周围添加一些分析代码,看看你是否可以隔离遇到减速的地方。
  • 在编译站点时对 mvc 的最大提升是它不是在第一次点击时动态编译并且缓存了剃刀视图。 show time with children 应该显示 FindView 处理程序中的速度增加。除此之外,还要看其他东西,比如发布数据库配置是否相同等

标签: asp.net-mvc performance debugging


【解决方案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 的球和锁链!

【讨论】:

猜你喜欢
  • 2013-02-14
  • 2022-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-04
  • 2014-12-17
  • 1970-01-01
相关资源
最近更新 更多