有关asp.net mvc的性能问题(部分视图和html助手)

时间:2009-08-24 21:53:35

标签: asp.net-mvc

我只是想知道在asp.net mvc应用程序中使用大量部分视图和html帮助程序会导致多少性能损失。

就像我知道html助手要轻量级但我看不到它们的呈现速度就像你制作直接的html一样快。

不要误会我的意思我爱他们,但只是好奇他们会对你的网站产生多大的影响。我猜的不多,但是这些html助手中的一些可能变得复杂并且做了很多。

此外,我喜欢使用部分视图,因为我的网站的许多部分基本上都需要相同的代码,所以不妨尝试消除重复的代码,因此我喜欢将它放在部分视图中。

部分视图对性能有多大影响?

4 个答案:

答案 0 :(得分:2)

我没有证据支持这一点,但我几乎没有假设。特别是对于HTML Helpers - 它只是一个额外的方法调用。您可以将帮助程序中的代码复制并粘贴到View中,并且您只需要在堆栈中减少一个方法。

答案 1 :(得分:2)

我普遍认为几乎没有开销,并且避免这两种情况都是过早的优化。但是,您应该注意两个重要的例外:

  • 当ASP.NET编译器仅在调试模式下编译 时,使用大量部分视图非常慢。在调试模式下,MVC不会缓存文件位置,因此每次呈现视图时都必须进行探测。不要被愚弄!此问题在发布模式中消失。

  • 在用于MVC 1.0的MVC Futures程序集中,有一些“强类型”HTML帮助程序(1)比System.Web.Mvc程序集中的帮助程序慢 10x 并且(2)可能与(在语法方面)不一致(可能是从性能POV改进)来自MVC 2的“强类型”助手。我建议远离这些。

但总的来说,我同意:首先写正确的代码,然后编写个人资料。

答案 2 :(得分:1)

您的服务器硬件和网络基础架构将比html帮助程序和部分视图更具限制性因素。不要考虑它。

答案 3 :(得分:0)

这是不成熟的优化。首先编写它,然后对其进行概要分析,如果发现性能不符合您的要求/ SLA,请使用性能分析工具查找性能不佳的代码。它可能不是html帮助器方法,它将是数据库调用和其他跨进程调用之类的东西。