我最近创建了一个asp.net mvc Web应用程序并在线发布。
首次加载网站时,您会发现它实际显示需要大约10-15秒,但是在点击一次之后,它会加载到第二次加载的速度。我只是想知道是否有人可能知道为什么网站花了这么长时间?
答案 0 :(得分:24)
通常,应用程序在启动应用程序域时总是需要一些额外的时间来加载。
有助于加剧这种情况的事情可能是从编写糟糕的代码(IE:Application_Start)到您可能正在使用的某些库(例如ORM)。你加载了多少个模块?
对于初学者,请检查您的web.config以查找臭名昭着的<compilation debug="true">
。这可能会在生产设置中产生重大的性能影响。将其设置为“false”!
建议使用“改善应用程序启动时间”来搜索某些内容,并查找可能与您的特定应用程序相关的内容。
从您的第一条评论中更新:
如果您在30分钟后再次启动应用程序(挂起几秒钟),则可能与IIS中的“应用程序池回收”设置有关。
进入IIS管理器(假定为v7 +):
就一般表现而言,您可能想尝试:
如果您 真的 难倒#2可能是您最好的选择,即使它可能是最慢的选项。
答案 1 :(得分:23)
我也有同样的问题,首先加载asp.net mvc网站的速度很慢,最后我找到了加载网站的最佳方式,首次加载速度非常快。
我的解决方案适用于Windows Server 2008 r2和IIS 7.5,但在上层Windows服务器和上层iis版本中也可以使用,但有一些简单的差异。
首先,您必须将应用程序池的startMode设置为始终运行,这将在一段时间后阻止您的应用程序池休眠。 (在我的情况下,这一步只是将我的网站首次加载从45-55秒加载到大约8-12秒)。
在第一步中,没有第一次请求您的网站, 为了预加载您的网站,我们需要另一个步骤,即从here
安装iis7.5的应用程序初始化模块在第二步中,您必须为您的网站设置preloadEnabled = true,此选项是应用程序初始化添加到网站设置。
有关更多信息以及如何设置这些选项,请参阅此博文: http://blogs.iis.net/wadeh/application-initialization-part-2
在第二步之后,我的网站仅在1-3秒内加载。
答案 2 :(得分:0)
除了周杰伦所说的......你应该考虑你的应用池的内存使用情况。对于共享主机环境尤其如此,一旦达到内存限制(而不是基于时间),您的提供商通常会回收应用程序池。这将再次导致您的站点“重新启动”,从而导致初始加载性能问题。
答案 3 :(得分:-1)
看起来旋转的图像有点大。在我的浏览器中,此部分加载最后一个。页面的其余部分加载速度非常快。您可能会考虑调整这些图像的大小。此外,大型JavaScript文件可能会在初始加载过程中导致一些减速。
答案 4 :(得分:-4)
实施的步骤很少: