开发者

.NET Memory Leak

开发者 https://www.devze.com 2023-01-09 00:56 出处:网络
After running our stress testing on our ASP.NET application access to internal web services, our mid-tier server (where we host ASMX .NET 3.5 web services) showed close to 1GB of memory consumption.

After running our stress testing on our ASP.NET application access to internal web services, our mid-tier server (where we host ASMX .NET 3.5 web services) showed close to 1GB of memory consumption.

Upon the review of memory dump from mid-tier server, I have found over 1000 objects of Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer referenced by Web Services runtime itself.

Is this anything related to how our custom objects are getting serialized/deserialized in the web services layer? Could anyone shed more light on this?

When I did !gcroot on some of these 1000 objects, I got the following trace: (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)-> 103d开发者_开发问答1174(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)

Thanks BK


You might want to try instrumenting your code with ANTS Memory Profiler from Red Gate.


I would strongly recommend us of the simply named .Net Memory Profiler from http://memprofiler.com/download.aspx.

You can use the full version for 14 days for free.

I have found it useful for this type of problem solving. It will show you the reference tree. Making fixing these type of problems really easy.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号