Eu estou procurando uma maneira de determinar a memória que um processo está realmente usando (não apenas tendo alocado).
Olhando para procmon.exe ou vmmap.exe, os valores relevantes são:
Bytes privados
Toda a memória alocada.
Conjunto de trabalho
Memória usada na RAM física.
Suponha private bytes = 3 GB
e working set = 200 MB
. No melhor dos casos, o processo está usando apenas os 200 MB e o restante é alocado apenas e não usado. Na pior das hipóteses, ele usa todos os 3 GB e 2,8 GB são trocados para o arquivo de paginação.
(Eu li as perguntas Quanta memória são minhas janelas aplicativo realmente usando? e O que são bytes privados, bytes virtuais , conjunto de trabalho , mas eles não respondem à minha pergunta.
Existe alguma maneira de encontrar a verdadeira memória de uso do processo?
Editar:
Para mim, a memória usada é a quantidade de memória alocada que foi preenchida.
Quando jus alocando 3 GB, 'nada' acontece. A memória é reservada apenas para o processo. Os bytes privados aumentam, mas o conjunto de trabalho permanece inalterado. Depois de preencher 200 MB da memória alocada, ela é mostrada no conjunto de trabalho.
Estes 200 MB de memória usada / preenchida são o que eu procuro, independentemente de estarem completamente no Working ou terem sido trocados.