【发布时间】: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