关于asp.net网站缓慢初始加载的GAC查询

时间:2015-06-05 15:05:24

标签: c# asp.net .net performance gac

我有一个单租户ASP.NET Web应用程序,它部署在Windows 2008R2 Web服务器上,而DB位于另一台服务器上。

我的应用程序使用至少20个第三方DLL,这些DLL的总大小约为150MB。假设我们在IIS中运行了20个客户站点,这些20多个DLL在每个单独的IIS进程中加载​​时会占用大量内存空间。我的问题:

站点加载时间非常慢:新客户单租户安装大约需要3-5分钟来加载主页。我假设在内存空间中加载所有这些DLL需要花费很多时间。

RAM占用:我的RAM正在疯狂地用完,随着我们扩展(获得更多的客户安装),宝贵的内存空间将用于这些相同的DLL。这些第三方DLL将来不会有太大变化(没有升级)。

因此,鉴于这些条件,我应该继续在GAC中安装这些程序集吗?根据我的阅读,我发现开发人员因各种原因(我明白这一点)建议我反对GAC,但我仍然觉得根据我的条件,在GAC中安装这些程序集不仅可以显着改善我的加载时间,还可以节省宝贵的RAM

任何输入都会很棒。

请注意,我已经使用ANTS和dotTrace分析了应用程序性能,并且没有明显的瓶颈会导致应用程序在第一次点击时加载速度太慢。另请注意,首次点击后应用程序性能可以接受。它在3秒内加载所有页面,但第一次命中需要3-5分钟。

1 个答案:

答案 0 :(得分:0)

即使从GAC加载程序集,内存占用也是一样的,因为每个应用程序都会在自己的内存空间中加载自己的DLL副本。

我建议在您的网站上首次点击作为后台流程,同时在前台向客户展示一些重要或有用的信息,以便在第一次点击时不会妨碍用户体验。