Понимание программистом памяти в диспетчере задач Windows Vista - PullRequest
7 голосов
/ 18 октября 2008

Я немного знаю о диспетчере задач Windows в XP, но мне хотелось бы лучше понять его в Vista. В чем разница между «Рабочий набор (память)» и «Память (частный рабочий набор)». Что такое пейджинговый пул, что такое пул NP (не пейджинговый?). Как я могу использовать их, чтобы определить, что происходит с использованием памяти? Кроме того, когда вы минимизируете программу, она часто возвращает 90% используемой памяти. Есть ли способ сделать это, не свернув его?

Ответы [ 2 ]

7 голосов
/ 18 октября 2008

Эта запись в блоге MSDN может быть информативной по первой части вопроса. Краткая выдержка:

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

Как обсуждалось в статье, часть о частном и не частном имеет отношение к памяти, используемой процессом, которая может использоваться другими процессами. Если вы не можете разделить память (возможно, память используется образом DLL, который нужно было переместить в память), он становится приватным. Память кучи также всегда будет закрытой.

Причина, по которой вы видите резкое падение памяти при сворачивании программы, заключается в том, что Windows автоматически обрезает рабочий набор процесса всякий раз, когда его главное окно свернуто. См. эту статью Microsoft KB для получения дополнительной информации, включая инструкции о том, как сделать это самостоятельно.

Память выгружаемого пула и памяти невыгружаемого пула относится к памяти ядра, используемой процессом. Память из выгружаемого пула может быть выгружена (удалена из физической памяти при увеличении нагрузки на память). Память из невыгружаемого пула всегда будет оставаться в физической памяти, поэтому обычно для этого предпочтительно оставаться маленьким. Если вы не пишете драйверы устройств, то, как разработчик приложений пользовательского режима, вам, как правило, не нужно беспокоиться об этих двух элементах.

0 голосов
/ 28 декабря 2008

Vista SuperFetch считает свободную память потерянной. Лучше использовать его как кеш. Вот почему вы часто будете видеть скудную свободную память в диспетчере задач.

...