Поделиться через


Сведения о рабочем наборе

Рабочий набор процесса — это объем памяти, физически сопоставленный с контекстом процесса. PSAPI позволяет создавать моментальные снимки рабочего набора или отслеживать рабочий набор.

Функция QueryWorkingSet или QueryWorkingSetEx заполняет буфер snapshot сведений для каждой страницы в текущем рабочем наборе указанного процесса. Функция сообщает только те страницы, которые физически присутствуют в момент ее вызова.

Вы можете использовать мониторинг рабочего набора, чтобы узнать, сколько дополнительного объема ОЗУ занимает определенная операция (например, сохранение файла). Чтобы начать мониторинг рабочего набора, вызовите функцию InitializeProcessForWsWatch . Не все процессы позволяют считывать сведения о рабочем наборе, поэтому перед продолжением убедитесь, что функция возвращает ненулевое значение. Затем вызовите функцию GetWsChanges . Эта функция сообщает только те страницы, которые были загружены в память с момента начала мониторинга рабочего набора. Функция возвращает данные в массиве PSAPI_WS_WATCH_INFORMATION структур, по одной структуре для каждой новой страницы, добавленной в рабочий набор процесса. Структура сообщает, какие страницы находятся в памяти, и что заставило систему выкладывать их на страницы.

Функция EmptyWorkingSet принимает дескриптор процесса. Он удаляет как можно больше страниц из рабочего набора процесса. Эта операция полезна в первую очередь для тестирования и настройки. Обратите внимание, что функция SetProcessWorkingSetSize выполняет то же самое, если передать ей значение -1 для минимального и максимального размеров.

Рабочий набор