Eu estive pesquisando muito ;-) Pelo que entendi, a memória virtual de um determinado processo é dividida em páginas que são manipulados pelo sistema operacional e apresentados ao aplicativo como se fosse RAM.
No OS X, baseado no kernel Mach, isso é tratado por um daemon chamado dynamic_pager
. Este processo gera o (s) swapfile (s) em /private/var/vm
como você mencionou. Esses arquivos de swap não são gerados em uma base por aplicativo, mas em uma base de "necessidade de memória". Os arquivos de swap são divididos em páginas de 4096 bytes, e as páginas são então alocadas para os processos que (são considerados pelo SO) precisam de memória virtual. Portanto, você não pode associar um arquivo de swap a um determinado aplicativo, mas pode ver quantas páginas um determinado processo está usando.
Você pode querer experimentar o comando vm_stat
em Termial. Isso fornece uma estatística do uso de VMs (observe que o número de páginas com tamanho de página ativo é igual ao tamanho do swapfile (s)). Isso também explica por que você pode ter vários processos usando a VM, mas apenas alguns arquivos de troca.
Outros comandos divertidos são vmmap [process id]
e pagestuff
.