构建后,所有页面的初始加载速度变慢

时间:2016-01-15 15:00:08

标签: c# asp.net-mvc iis-7 visual-studio-2015 asp.net-4.5

在构建MVC Web应用程序之后,我习惯于在第一个访问的网页上遇到缓慢的加载时间,我知道为什么会发生这种情况,但我也注意到加载时间是每个网页的初始访问速度都很慢

例如,以下是我的主页在各种条件下的加载时间。主页不进行任何数据库调用:

  • 建立项目并加载希望页面(第一个网站点击,第一个主页点击): 10.31秒(预期)
  • 建立项目,加载联系页面(第一个网站点击),然后加载主页(第一个主页点击): 757毫秒(不期望)
  • 主页的所有后续加载时间(第2次,第3次,第4次等主页点击次数): 4 ms (预期)

我为所有网页重现了这些相同的结果,而不仅仅是主页。即,如果您将“主页”替换为“关于我们页面”,将“联系页面”替换为“常见问题页面”,则加载时间将与上述几乎完全相同。

这些数字适用于我的本地环境,如果我将项目推送到生产环境,它们会飙升,每页的初始加载时间是几十秒。

有趣的是,我只记得几天前开始发生的事情。在过去的几个月里,从我记忆中来看,最初的网站加载速度总是很慢,但在此之后,所有网页的初始加载速度都会非常快。

导致每个页面的初始加载时间变慢的原因是什么?

2 个答案:

答案 0 :(得分:1)

应用程序池在开始处理库之前需要时间来构建库。通过使用某种脚本可以加快速度。这还取决于您使用的是网站还是Web应用程序项目。第一次点击的每个页面的网站都很慢,每个新页面命中都有额外的编译时间。预编译的Web应用程序项目应该快一点,但是仍然需要加载库。你遇到的图书馆和工具越多,这种打击就越差。

您还可以查找 IIS自动启动功能,并在服务器上设置它可能有助于加快此过程。默认情况下,如果用户不活动默认值为1740分钟,应用程序池将关闭。您也可以通过设置为0来禁用空闲TimeOut 可以提供很多帮助。

我最好的选择是使用Application Initialization插件来获得更好的性能 http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-application-initialization

答案 1 :(得分:0)

在我将项目从VS2017移至VS2019之后发生。我发现了我想的问题。每个页面在第一次访问时都会编译一次。检查发布选项。您将看到一个选项“发布期间预编译”启用此选项。删除BIN和WIEWS文件夹。从发布位置复制文件夹(请勿覆盖)