¿Es posible realizar un seguimiento de la asignación/desasignación?
-
09-06-2019 - |
Pregunta
Hasta donde puedo decir, esto no es posible, por lo que realmente solo espero una función de enlace de asignación indocumentada en el campo izquierdo.
Quiero una forma de realizar un seguimiento de las asignaciones como en _CrtSetAllocHook, pero para C#/.NET
.
La única visibilidad para el recolector/asignación de basura parece ser GC.CollectionCount.
¿Alguien tiene algún otro recurso de memoria .NET?
Solución
El CLR tiene una 'API de creación de perfiles' que se conecta a prácticamente todo; creo que es lo que utilizan los productos comerciales de creación de perfiles de memoria .NET.Aquí hay un enlace de MSDN al nivel superior de la documentación: Referencia general de .NET Framework:Acerca de la API de creación de perfiles
Consulte este artículo de la revista MSDN para obtener una introducción a la pieza de memoria: Inspeccione y optimice el uso de la memoria de su programa con la API .NET Profiler
Otros consejos
Simplemente usaría ANTS Profiler de Red Gate.Le dirá mucho sobre lo que sucede en la memoria sin que tenga que aprender la API de creación de perfiles usted mismo.