Como faço para ver a alocação de memória em um determinado aplicativo .NET?
-
05-07-2019 - |
Pergunta
Eu preciso verificar quanta memória é alocada na pilha. Existe uma maneira de obter esse valor programaticamente com C #?
Eu sei sobre o System.Runtime.InteropServices.Marshal.SizeOf(...)
mas isso só me diz que o tamanho de um objeto.
Solução
Usando um PerformanceCounter você pode consultar o " # Bytes em todas as pilhas", a partir do seu próprio processo, e até mesmo outros processos.
Use a categoria "Memória do .NET CLR" para ver um monte de contadores disponíveis.
Você tem que ver o que a diferença de carga do sistema é entre o PerformanceCounter eo GC.GetTotalMemory que é proposta por Jon Skeet.
Outras dicas
O GC.GetTotalMemory
fazer tudo o que você precisa?
(Note que SizeOf
só lhe diz o marshalled tamanho, também -. Não necessariamente o tamanho em memória)