SOS o PssCor son un buen lugar para comenzar, junto con WinDbg.
Una vez que lo haya resuelto; adjunte WinDbg a su proceso, cargue la extensión del depurador. Por ejemplo:
.load C:\pathtoextensions\psscor4.dll
Después de eso, puede emitir el !dumpheap
o !dumpstack
comandos.
La salida de estos dos comandos es muy cruda. !dumpheap -stat
le dará una descripción "estadística" de su montón. El tipo, el número asignado y los bytes en total para todas las asignaciones.
Esta no es una tarea súper directa. Llevará bastante tiempo practicar con WinDbg si no lo ha usado antes.
Lo que puede hacer es establecer un punto de interrupción en un método usando !bpmd
, y usar los comandos mencionados anteriormente, luego pasar de nuevo usando el comando p
y volver a ejecutar los comandos.
Estoy seguro de que hay otras herramientas comerciales como ANTS Profiler o dotTrace que pueden hacer el trabajo, pero no tengo mucha experiencia con ninguna herramienta.
Una vez que haya comenzado, puede hacer (nueva) preguntas más específicas sobre SOS o Psscor.
Eso es un * lote * de datos y es probable que no le diga mucho. (O peor, vendrá quejándose de que nunca recoge basura en las veinte líneas que miró). Si tiene dudas sobre la asignación de memoria y la recolección de basura, haga preguntas y/o busque explicaciones de alto nivel, eso es más probable que ocurra. aclarar las cosas. – delnan
Claro, definitivamente haré esto ahora en adelante – funsukvangdu