【发布时间】:2016-01-15 15:00:08
【问题描述】:
在构建 MVC Web 应用程序后,我习惯于在访问第一个网页时遇到缓慢的加载时间,我知道为什么会发生这种情况,但我也注意到 加载时间是每个网页的初始访问速度都很慢。
例如,以下是我的主页在各种条件下的加载时间。主页不进行任何数据库调用:
- 构建项目并加载希望页面(第一个网站点击和第一个主页点击):10.31 秒(预期)
- 构建项目,加载联系人页面(第一个网站点击),然后加载主页(第一个主页点击):757 毫秒(非预期)
- 主页的所有后续加载时间(第 2 次、第 3 次、第 4 次等主页点击):4 毫秒(预期)
我已经为所有网页复制了这些相同的结果,而不仅仅是主页。即,如果您将“主页”替换为“关于我们的页面”,将“联系页面”替换为“常见问题页面”,加载时间将与上述几乎完全相同。
这些数字是针对我本地环境的,如果我将我的项目推到生产环境,它们会暴涨,每个页面的初始加载都是几十秒。
有趣的是,我只记得几天前开始发生的事情。在过去的几个月里,据我所知,初始网站加载总是很慢,但在那之后,所有页面在初始加载时都会加载得非常快。
是什么导致每个页面的初始加载时间缓慢?
【问题讨论】:
-
你在 IIS 上部署吗?
-
是的,我在 IIS 上进行部署。还可以在 https 上运行该网站,以实现其价值。
-
每次部署时,应用程序池都会被回收并需要重新启动。也许在您页面的初始加载时,它们会被缓存,因此后续调用会更快。
-
你找到答案了吗?我也有同样的情况。
-
@Matt,我做了一个简单的爬虫来“预热”网站。这只是我在推出之后手动运行的 c# 代码,在网站重新上线之前,它会遍历网站目录并在浏览器中打开每个页面。这是一种痛苦,但它有效。我被锁定使用 IIS 7,因为我无法独立于操作系统升级它,但 IIS 8 中的应用程序初始化功能可能会解决这个问题。因此,如果您没有 IIS 8,我会说编写一个自定义爬虫,如果您有 IIS 8,请查看应用程序初始化功能 - 有兴趣了解它是否有效。
标签: c# asp.net-mvc iis-7 visual-studio-2015 asp.net-4.5