关于asp.net网站初始加载缓慢的GAC查询
本文关键字:缓慢 GAC 查询 加载 asp net 网站 关于 | 更新日期: 2023-09-27 17:53:33
我有一个单租户ASP。. NET web应用程序部署在Windows 2008R2 web服务器上,而数据库在另一台服务器上。
我的应用程序至少使用了20个第三方dll,这些dll的总大小约为150MB。假设我们有20个客户站点在IIS中运行,这20多个dll在每个单独的IIS进程中加载时会占用大量内存空间。我的问题:
非常慢的站点加载时间:一个新客户单租户安装大约需要3-5分钟来加载主页。我假设在内存空间中加载所有这些dll需要花费这么多时间。
RAM占用:我的RAM正在被疯狂地用完,随着我们的扩展(获得更多的客户安装),宝贵的内存空间将被这些相同的dll耗尽。这些第三方dll将来不会有太大的变化(没有升级)。
那么在这些条件下,我应该继续在GAC中安装这些组件吗?从我所读到的,我发现开发人员建议我反对GAC的各种原因(我确实理解),但我仍然觉得,鉴于我的条件,在GAC中安装这些程序集不仅可以显著提高我的加载时间,还可以节省宝贵的RAM。
任何意见都很好。
请注意,我已经使用ANTS和dotTrace对应用程序性能进行了分析,并且没有明显的瓶颈会导致应用程序在第一次命中时加载如此缓慢。还要注意,在第一次命中之后,应用程序的性能是可以接受的。它在3秒内加载所有页面,但第一次点击需要3-5分钟。
即使您从GAC加载程序集,内存占用也是相同的,因为每个应用程序将在自己的内存空间中加载自己的dll副本。
我建议在后台开始一个初始点击,同时在前台向客户展示一些重要或有用的信息,这样用户体验就不会在第一次点击中受到阻碍。