Uma maneira de determinar o uso de memória "real" de um processo, ou seja, RSS privado e sujo?

Ferramentas como 'ps' e 'top' relatam vários tipos de uso de memória, como o tamanho da VM e o Tamanho do conjunto de residentes. No entanto, nenhum desses é o uso de memória "real":

O código do programa é compartilhado entre várias instâncias do mesmo programa.O código do programa da biblioteca compartilhada é compartilhado entre todos os processos que usam essa biblioteca.Alguns aplicativos separam processos e compartilham memória com eles (por exemplo, por meio de segmentos de memória compartilhada).O sistema de memória virtual torna o relatório de tamanho da VM praticamente inútil.O RSS é 0 quando um processo é trocado, tornando-o pouco útil.Etc etc.

Descobri que o RSS privado sujo, como relatado pelo Linux, é a coisa mais próxima do uso de memória "real". Isso pode ser obtido pela soma de todosPrivate_Dirty valores em/proc/somepid/smaps.

No entanto, outros sistemas operacionais fornecem funcionalidade semelhante? Se não, quais são as alternativas? Em particular, estou interessado no FreeBSD e no OS X.

questionAnswers(10)

yourAnswerToTheQuestion