2008-09-13 12 views
13

¿Alguien sabe de una forma de averiguar cuánta memoria está tomando una instancia de un objeto?Averiguar cuánta memoria está siendo utilizada por un objeto en C#?

Por ejemplo, si tengo una instancia del objeto siguiente:

TestClass tc = new TestClass();

¿Hay alguna manera de averiguar cuánta memoria está tomando la instancia tc?

La razón para preguntar, es que aunque C# ha incorporado la administración de la memoria, a menudo me encuentro con problemas al no borrar una instancia de un objeto (por ejemplo, una Lista que realiza un seguimiento de algo).

Hay un par de perfiladores de memoria razonablemente buenos (por ejemplo, ANTS Profiler), pero en un entorno de subprocesos múltiples es bastante difícil determinar a qué pertenece, incluso con esas herramientas.

Respuesta

2

Tengo buenas experiencias con MemProfiler. Le da rastros de pila de cuando se creó el objeto y todos los gráficos de por qué el objeto aún no es basura.

7

Si no está tratando de hacerlo en el código en sí, lo que estoy asumiendo en función de su referencia ANTS, intente echar un vistazo a CLRProfiler (actualmente v2.0). Es gratis y si no te importa la IU simplista, puede proporcionar información valiosa. Le dará una descripción en profundidad de todo tipo de estadísticas. Lo utilicé hace un tiempo como una herramienta para encontrar un puerro de memoria.

Descargar aquí: http://www.microsoft.com/downloads/details.aspx?FamilyId=A362781C-3870-43BE-8926-862B40AA0CD0&displaylang=en

Si desea hacerlo en el código, el CLR ha perfilado las API que puede utilizar. Si encuentra la información en CLRProfiler, ya que usa esas API, también debería poder hacerlo en código. Más información aquí: http://msdn.microsoft.com/de-de/magazine/cc300553(en-us).aspx

(. No es tan críptica como el uso de WinDbg, pero estar preparado para hacer poderoso profundamente en el CLR)

3

El CLR Profiler, que es proporcionar libre por Microsoft hace un muy buen trabajo en este tipo de cosas

Puede descargarse una introducción a todo el generador de perfiles here. También los Patrones & Practices team put something juntos hace un tiempo detallando cómo usar el perfilador.

Hace un trabajo bastante razonable al mostrarte los diferentes hilos y objetos creados en esos hilos.

Espero que esto arroje algo de luz. ¡Feliz perfil!

Cuestiones relacionadas