2008-09-09 19 views
8

Estoy tratando de encontrar una manera de determinar en tiempo de ejecución cuánta memoria está usando una clase determinada en .NET. Se ha eliminado el uso de Marshal.SizeOf(), ya que solo funciona en tipos de valores. ¿Hay alguna manera de verificar exactamente cuánta memoria usa una clase?¿Determinar cuánta memoria usa una clase?

Respuesta

5

Recientemente he empezado a investigar este tipo de cosas, pero he descubierto que los perfiladores de memoria pueden proporcionar información bastante detallada con respecto a las instancias de objetos dentro de su aplicación.

Aquí hay un par que vale la pena probar:

1

Estoy de acuerdo que un perfilador de memoria es la forma más fácil de obtener la información que busca. Además de los dos anteriormente mencionados, recomiendo JetBrains dotTrace, que es a la vez un perfilador de rendimiento y un perfilador de memoria.

Si quiere hacerlo usted mismo, y está dispuesto a profundizar en las entrañas del CLR, puede usar el .NET Profiling API, que es una API no administrada que (como dice Microsoft): "permite que un analizador monitoree la ejecución de un programa por Common Language Runtime (CLR). " No es exactamente para uso casual, pero tiene una enorme cantidad de funcionalidad.

Cuestiones relacionadas