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
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:
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.
simplemente enlazar a relacionados SO pregunta:
- 1. ¿Cuánta memoria usa una Hashtable?
- 2. ¿Cuánta memoria usa numpy ndarray?
- 3. ¿Cómo sabe MemoryCache cuánta memoria usa?
- 4. ¿Cuánta memoria usa el puntero nulo?
- 5. ¿Cuánta memoria usa un puntero C++?
- 6. ¿Hay alguna manera de ver cuánta memoria usa una variable?
- 7. ¿Cuánta memoria usa realmente mi aplicación de Windows?
- 8. ¿Cómo puedo determinar cuánta memoria está usando mi programa .NET?
- 9. ¿Cuánta memoria tiene una constante en C?
- 10. zlib, deflate: ¿Cuánta memoria asignar?
- 11. ¿Cuánta memoria intermedia tienen NetworkStream y TcpClient?
- 12. ¿Cuánta memoria debería poder asignar?
- 13. ¿Cuánta memoria podría utilizar vm
- 14. Cómo saber cuánta gente usa mi software
- 15. ¿Cuánta memoria tiene antes de ser grosera?
- 16. ¿Puede recordarme Memcache cuánta memoria está usando?
- 17. ¿Cómo sabe free() cuánta memoria desasignar?
- 18. Malloc -> ¿cuánta memoria ha sido asignada?
- 19. ¿Cuánta memoria debe asignar 'managed_shared_memory'? (Impulso)
- 20. Cuánta memoria está bloqueada en un proceso
- 21. Android: ¿cómo verificar cuánta memoria queda?
- 22. ¿Cuánta memoria tiene mi hilo de Java?
- 23. cuánta memoria toma un hilo en java
- 24. ¿Cuánta memoria debe consumir una aplicación de Ruby on Rails?
- 25. ¿Cuánta memoria puede usar una aplicación de iPhone?
- 26. ¿Cuánta memoria usa un objeto Java cuando todos sus miembros son nulos?
- 27. Averiguar cuánta memoria está usando un objeto en Python
- 28. ¿Cuánta memoria permite iOS que usen las aplicaciones?
- 29. En Objective-C, ¿cómo sabe + alloc cuánta memoria asignar?
- 30. ¿Hay un algoritmo para determinar cuánta luz del día hay?