【问题标题】:ASP.NET MVC vs WebForms for First Page Load Speed for Big ProjectsASP.NET MVC 与 WebForms 的大项目首页加载速度
【发布时间】:2008-12-12 01:21:16
【问题描述】:

我们有一个非常大的 ASP.NET WebForm(Web 应用程序)项目,其中包含对其他库、其他项目等的大量引用,并且大多数时候在编译后,我们第一次加载页面需要很长时间在渲染任何东西之前......磁盘IO是主要问题。对于小型项目来说,这几乎是瞬间完成的,但一旦项目变大,它确实会减慢开发速度并消除编程的乐趣。

我的问题: 在 ASP.NET MVC 中编译后的首页加载时间是否与在大型项目的 ASP.NET Webforms 中一样长?

【问题讨论】:

  • 真的取决于实现。您可以制作慢速和快速的 asp.net mvc 或 webforms 应用程序。
  • 我不太明白...为什么会拖慢开发速度?您是在 IIS 还是 Visual Studio 开发服务器中进行测试?我们通常使用后者,在一台像样的机器上,第一次加载需要几秒钟的时间。我们的解决方案有大约 15 个项目、大约 1000 个类文件和大约 100 个视图。

标签: c# asp.net-mvc performance webforms


【解决方案1】:

MVC 仍然使用与 Web 窗体相同的 ASP.NET 框架,因此无论如何您都可能会看到类似的行为。

第一次加载时间长是因为您的项目的构建输出仍然只是 IL 代码,需要在执行之前由 JIT 编译器编译为本机代码。您所做的任何代码更改都将导致您的应用程序之前缓存的本机代码被丢弃,因此 JIT 必须重新编译。自然,您的项目越大,JIT 处理它所需的时间就越长。

【讨论】:

    【解决方案2】:

    您会在两种环境中看到相似的加载时间。

    在这两种环境中,如果您的网站变得很大,您应该在部署之前预编译您的网站。这将消除首页加载时的性能拖累。

    【讨论】:

    • 他说的是开发过程中。
    【解决方案3】:

    可以做很多事情来提高性能,在 MVC 应用程序中提供关注点分离的增强功能可以提供很大帮助。尽管默认视图引擎重用了 Web 表单,但视图的控制堆栈比典型的 Web 表单简单得多,这很有帮助,更不用说替代视图引擎了。

    “第一个视图”的成功来自必须对项目中使用的大量类/对象进行 JIT 处理,并且它是第一页。

    【讨论】:

      猜你喜欢
      • 2010-11-05
      • 2010-12-14
      • 2010-10-14
      • 2019-02-05
      • 2012-07-07
      • 1970-01-01
      • 1970-01-01
      • 2011-08-21
      • 2012-05-18
      相关资源
      最近更新 更多