首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.NET MVC局部视图速度慢?

ASP.NET MVC局部视图速度慢?
EN

Stack Overflow用户
提问于 2010-09-02 18:37:36
回答 3查看 9.1K关注 0票数 21

我只是碰巧检查了我们正在构建的ASP.NET MVC应用程序的性能。我打算将一个局部视图插入到一个循环中,出于好奇,我检查了渲染页面需要多长时间。结果并不好。

我需要做更多的结论调查,但以防有人有类似的问题或更有洞察力,这是我到目前为止所掌握的。首先,我应该说所有的结果和测量都是在多个页面加载之后完成的,并且我已经在web.config中设置了<compilation debug="false">

  • 似乎单个渲染部分会产生大约5ms的命中(至少在我的环境中是这样)。当我内联部分视图的实际内容时,我实际上得到了0MS.
  • 当我将一个空的部分视图包含到一个大约有70个元素的循环中时,总呈现时间增加了大约60ms。所以大概有一些缓存,但这并不理想。
  • 我调试了ASP.NET MVC,发现缓存了部分视图,但它只缓存了指向ascx的路径。然后每次使用BuildManager.CreateInstanceFromVirtualPath方法实例化实际视图。
  • 现在有趣的一点是:当使用WebForms语法(<my:UserContol runat="server" />)包含相同的部分视图时,额外的60毫秒就消失了。

因此,根据上面的观察,罪魁祸首似乎是BuildManager.CreateInstanceFromVirtualPath方法。也许,它并不意味着要被多次调用。Webforms大概不会使用它;或者每个ascx只使用一次?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3626272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档