частный рабочий набор менеджера задач ниже, чем частные байты монитора производительности

396
Trisha

Я пытаюсь отследить утечку памяти в приложении, поэтому у меня был график производительности с частными байтами. Однажды монитор производительности сказал, что количество приватных байтов растет, но в диспетчере задач частный рабочий набор остается таким же и ниже, чем количество приватных байтов.

Я понимаю, что частный рабочий набор диспетчера задач превышает частные байты монитора производительности, поскольку я знаю, что частный рабочий набор включает общую память. Но значит ли это что-то особенное, если приватный рабочий набор меньше приватных байтов?

1
Закрытый рабочий набор НЕ включает общие объекты, если сам процесс их не создал. Частный WS всегда должен быть меньше или равен частным байтам в зависимости от процесса. Чтобы прямо ответить на ваш вопрос, когда Private WS меньше Private Bytes, это должно означать, что часть процесса была выгружена на диск. Frank Thomas 8 лет назад 0
использовать ETW для отслеживания утечки памяти: https://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-154-Memory-Footprint-and-Leaks magicandre1981 8 лет назад 0

1 ответ на вопрос

0
Jamie Hanrahan

Частный рабочий набор - это физическая память (RAM), Private Bytes - виртуальная. (В некоторых местах это называется «частная фиксация».) Частный рабочий набор - это подстраиваемое или резидентное подмножество частных байтов. Так что это вполне ожидаемое поведение.

Обратите внимание, что разница не обязательно «выгружается на диск». Частная память, которая была зафиксирована, но на которую еще не ссылались, не занимает ни ОЗУ, ни файловое пространство на диске.

Это легко проверить с помощью инструмента sysinternals testlimit. С опцией -m он фиксирует личное виртуальное адресное пространство, но не ссылается на него, поэтому распределение отображается в «частных байтах», но не отображается в рабочем наборе ИЛИ в используемом пространстве файла подкачки. Опция -d - это фиксация, но она также «затрагивает» (записывает) виртуальную память, что вызывает ее «сбой», и только тогда ОС выделяет для нее оперативную память.

Будет ли человек, который отрицал, объяснить, почему? Может быть, предоставить ссылку для противодействия информации? Jamie Hanrahan 5 лет назад 0

Похожие вопросы