conjunto de trabalho privado do gerenciador de tarefas menor que os bytes privados do monitor de desempenho

1

Estou tentando rastrear um vazamento de memória em um aplicativo, portanto, fiz com que o monitor de desempenho registrasse seus bytes particulares. Uma vez, o monitor de desempenho disse que os bytes privados estavam aumentando, mas no gerenciador de tarefas, o conjunto de trabalho privado permaneceu o mesmo e menor que o número de bytes particulares.

Eu entendo se o conjunto de trabalho particular do gerenciador de tarefas é maior do que os bytes privados do monitor de desempenho, pois sei que o conjunto de trabalho particular inclui memória compartilhada. Mas isso significa alguma coisa especial se o conjunto de trabalho privado for menor que os bytes particulares?

    
por Trisha 14.03.2016 / 16:26

1 resposta

0

Conjunto de trabalho privado é a memória física (RAM), o Private Bytes é virtual. (É chamado de "private committed" em alguns lugares.) O conjunto de trabalho privado é o subconjunto de Private Bytes paginados ou "residentes". Então isso é um comportamento totalmente esperado.

Observe que a diferença não é necessariamente "paginada para o disco". A memória privada que foi confirmada mas ainda não referenciada ocupa nenhuma RAM nem espaço no arquivo do disco.

Isso é fácil de verificar com a ferramenta slimterntern testlimit. Com a opção -m, ele confirma o espaço de endereço virtual privado, mas não faz referência a ele, portanto, a alocação é mostrada em "bytes particulares", mas não em todos, no conjunto de trabalho OR no espaço de arquivo de paginação usado. Com a opção -d é confirmada, mas também "toca" (escreve para) a memória virtual, o que faz com que seja "com falha", e só então o sistema operacional alocar RAM para isso.

    
por 10.11.2018 / 03:19