【问题标题】:ASP.NET MVC view engine performanceASP.NET MVC 查看引擎性能
【发布时间】:2010-12-07 23:07:39
【问题描述】:

我正在使用最终版本的 asp.net mvc 开发高负载解决方案。 最近我们的团队注意到,服务器响应客户端的大部分时间都用于页面渲染。简单的时间表如下所示:

Page start   - 1.8608363s
Render module 1140/Modules/Owners start      - 1.86859s
Render module 1140/Modules/Owners Complete   - 1.9081751s
Render module 829/Modules/Links start    - 1.9081788s
Render module 829/Modules/Links Complete     - 2.3380648s
Render module 1036/Modules/Advertisement start   - 2.3459101s
Render module 1036/Modules/Advertisement Complete    - 2.3482298s
Render module 1110/Modules/Goodies start     - 2.3482322s
Render module 1110/Modules/Goodies Complete      - 2.6300744s
Render module 1004/Modules/TopicLinks start      - 2.6300784s
Render module 1004/Modules/TopicLinks Complete   - 3.8852529s
Render module 1048/Modules/News start    - 3.8927697s
Render module 1048/Modules/News Complete     - 4.4958795s
Render module 1128/Modules/SuggestedLinks start      - 4.4958832s
Render module 1128/Modules/SuggestedLinks Complete   - 4.5704227s
Page end     - 4.5711193s
TopicMainMenuPages start     - 4.5717661s
TopicMainMenuPages End   - 4.571974s
Render Finished      - 4.6185852s

渲染速度如此缓慢的原因是什么?这是在单个请求期间经常使用部分渲染吗?

【问题讨论】:

  • @Daniel 很到位。即使在 MVC 3 的发布模式下,部分渲染也很慢。我很好奇为什么动态渲染默认的 mvc web 应用主页需要将近 200 毫秒,我用谷歌搜索并找到了这篇文章。阅读这篇文章后,我从主模板中删除了 Html.RenderPartial 调用,即使在调试模式下,渲染时间也下降到 2 毫秒。对于不能很好缓存的动态页面,当您遇到性能问题时,这使得 Html.RenderPartial 很可能成为嫌疑人

标签: asp.net-mvc performance viewengine


【解决方案1】:

确保 compilation debug="false" 在您的 web.config 中并在发布模式下构建您的应用程序。这将允许 MVC 框架缓存它为您的局部视图解析的路径。

请参阅article here 了解更多信息。

善良,

【讨论】:

  • 谢谢,丹尼尔。它平均为我们提供了长达 2 秒的性能。其他一切都取决于我们的 BL 模块。
  • 我的页面加载需要 10 秒,现在不到 1 秒!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-11
  • 1970-01-01
  • 1970-01-01
  • 2010-10-04
相关资源
最近更新 更多