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.

Foi útil?

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)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top