2010-07-28 24 views
5

Después de ejecutar nuestra prueba de estrés en nuestro acceso a aplicaciones ASP.NET a servicios web internos, nuestro servidor de nivel medio (donde alojamos servicios web ASMX .NET 3.5) mostró cerca de 1GB de consumo de memoria..NET Memory Leak

Tras la revisión del volcado de memoria desde el servidor de nivel medio, he encontrado más de 1000 objetos de Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer a los que hace referencia el tiempo de ejecución de los mismos servicios web.

¿Esto está relacionado con la forma en que nuestros objetos personalizados se serializan/deserializan en la capa de servicios web? ¿Alguien podría arrojar más luz sobre esto? !

Cuando hice gcroot en algunos de estos objetos 1000, me dio la siguiente traza: (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 + cubo []) -> 1c24b934 (System.Web.Caching.CacheEntry) -> 18363994 (System.Web.Services.Protocols. SoapServerType) -> 183639c4 (System.Collections.Hashtable) -> 1c24aa5c (System.Collections.Hashtable + cubo []) -> 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 (Sistema .Web.Compilation.MemoryBuildResultCache) -> 144631fc (System.Web.Caching.CacheMultiple) -> 14463214 (System.Object []) -> 14465088 (System.Web.Caching.CacheSingle) -> 144650d4 (Sistema .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 + cubo []) -> 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 (Sistema.Object []) -> 102d7b1c (System.Web.Caching.CacheSingle) -> 102d7b68 (System.Collections.Hashtable) -> 102d7bac (System.Collections.Hashtable + cubo []) -> 181ee124 (Sistema. Web.Caching.CacheEntry) -> 10350eac (System.Web.Services.Protocols.SoapServerType) -> 10350edc (System.Collections.Hashtable) -> 181ed260 (System.Collections.Hashtable + cubo []) -> 181ed148 (System.Web.Services.Protocols.SoapServerMethod) -> 181eb708 (Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer61)

Gracias BK

+0

recomiendo encarecidamente mover a WCF. – Andrey

+0

Me encantaría. Este es el código existente y hemos actualizado recientemente a ASP.NET 3.5 –

Respuesta

1

Me recomendaría encarecidamente el nombre .Net Memory Profiler de http://memprofiler.com/download.aspx.

Puede usar la versión completa durante 14 días de forma gratuita.

Lo he encontrado útil para este tipo de resolución de problemas. Le mostrará el árbol de referencia. Hacer que resolver este tipo de problemas sea realmente fácil.