在我们的ASP.NET应用程序访问内部Web服务上运行压力测试后,我们的中间层服务器(我们托管ASMX .NET 3.5 Web服务)显示接近1GB的内存消耗.
在检查来自中间层服务器的内存转储后,我发现了Web服务运行时本身引用的1000多个Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer对象.
这与我们的自定义对象如何在Web服务层中进行序列化/反序列化有关吗?任何人都可以对此有所了解吗?
当我这样做了!对这些1000个对象中的一些进行gcroot时,我得到了以下描述:
(Microsoft.Practices.EnterpriseLibrary.Common.Configuration.Storage.ConfigurationChangeFileWatcher) – >
1c4bb450(System.Threading.Thread) – >
18236aa0(System.Runtime.Remoting.Contexts.Context) – >
18236914(System.AppDomain) – >
10409dc4(System.ResolveEventHandler) – >
10409494(System.Web.Compilation.BuildManager) – >
10409f30(System.Web.Compilation.MemoryBuildResultCache) – >
103d115c(System.Web.Caching.CacheMultiple) – >
103d1174(System.Object的[]) – >
103d2034(System.Web.Caching.CacheSingle) – >
103d2080(System.Collections.Hashtable) – >
1c24b97c(System.Collections.Hashtable bucket []) – >
1c24b934(System.Web.Caching.CacheEntry) – >
18363994(System.Web.Services.Protocols.SoapServerType) – >
183639c4(System.Collections.Hashtable) – >
1c24aa5c(System.Collections.Hashtable bucket []) – >
1c24a458(System.Web.Services.Protocols.SoapServerMethod) – >
1c248ae4(Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer26)
(Microsoft.Practices.EnterpriseLibrary.Common.Configuration.Storage.ConfigurationChangeFileWatcher) – >
1c5ac4b0(System.Threading.Thread) – >
1c52b5f0(System.Runtime.Remoting.Contexts.Context) – >
1c52b464(System.AppDomain) – >
18823880(System.ResolveEventHandler) – >
18822f50(System.Web.Compilation.BuildManager) – >
188239e0(System.Web.Compilation.MemoryBuildResultCache) – >
144631fc(System.Web.Caching.CacheMultiple) – >
14463214(System.Object的[]) – >
14465088(System.Web.Caching.CacheSingle) – >
144650d4(System.Collections.Hashtable) – >
1446510c(System.Collections.Hashtable bucket []) – >
1c5a580c(System.Web.Caching.CacheEntry) – >
109e6e34(System.Web.Services.Protocols.SoapServerType) – >
109e6e64(System.Collections.Hashtable) – >
1c5a4fcc(System.Collections.Hashtable bucket []) – >
1c5a4a54(System.Web.Services.Protocols.SoapServerMethod) – >
1c5a44f4(Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer28)
(Microsoft.Practices.EnterpriseLibrary.Common.Configuration.Storage.ConfigurationChangeFileWatcher) – >
108b38f0(System.Threading.Thread) – >
1c1155ec(System.Runtime.Remoting.Contexts.Context) – >
1c115460(System.AppDomain) – >
1030d348(System.ResolveEventHandler) – >
1030ca18(System.Web.Compilation.BuildManager) – >
1030d4a0(System.Web.Compilation.MemoryBuildResultCache) – >
102d7ae4(System.Web.Caching.CacheMultiple) – >
102d7afc(System.Object的[]) – >
102d7b1c(System.Web.Caching.CacheSingle) – >
102d7b68(System.Collections.Hashtable) – >
102d7bac(System.Collections.Hashtable bucket []) – >
181ee124(System.Web.Caching.CacheEntry) – >
10350eac(System.Web.Services.Protocols.SoapServerType) – >
10350edc(System.Collections.Hashtable) – >
181ed260(System.Collections.Hashtable bucket []) – >
181ed148(System.Web.Services.Protocols.SoapServerMethod) – >
181eb708(Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer61)
谢谢
BK