在构建MVC Web应用程序之后,我习惯于在访问的第一个网页上遇到缓慢的加载时间,并且我知道为什么会发生这种情况,但我也注意到加载时间对于初始访问的速度来说很慢每一个网页.
例如,以下是我的主页在各种条件下的加载时间.主页不进行任何数据库调用:
>建立项目并加载希望页面(第一个网站点击,第一个主页点击):10.31秒(预期)
>建立项目,加载联系页面(第一个网站点击),然后加载主页(第一个主页点击):757毫秒(不是预期的)
>主页的所有后续加载时间(第2次,第3次,第4次等主页命中):4 ms(预期)
我已经为所有网页重现了这些相同的结果,而不仅仅是主页.即,如果将“主页”替换为“关于我们页面”,将“联系页面”替换为“常见问题页面”,则加载时间将与上述几乎完全相同.
这些数字适用于我的本地环境,如果我将项目推送到生产环境,它们会飙升,每页的初始加载时间是几十秒.
有趣的是,我只记得几天前开始发生的事情.在过去的几个月里,从我记忆中来看,最初的网站加载总是很慢,但在那之后,所有页面的初始加载都会非常快.
是什么原因导致每页的初始加载时间变慢?
最佳答案 应用程序池在开始处理库之前需要时间来构建库.通过使用某种脚本可以加快速度.这还取决于您使用的是网站还是Web应用程序项目.第一次点击的每个页面的网站都很慢,每个新页面命中都有额外的编译时间.预编译的Web应用程序项目应该快一点,但是仍然需要加载库.你遇到的图书馆和工具越多,这种打击就越差.
您还可以查找IIS自动启动功能,并在服务器上设置它可能有助于加快此过程.默认情况下,如果用户不活动默认值为1740分钟,应用程序池将关闭.您也可以通过设置为0来禁用空闲TimeOut可以帮助很多.
我最好的选择是使用Application Initialization插件来获得更好的性能
http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-application-initialization