Private Bytes VS Рабочий набор в Process Explorer

39

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

Итак, я бы добавил эти два, чтобы выяснить, сколько памяти фактически забирается у других процессов в системе?

Scandalist
источник

Ответы:

52

Боюсь, не все так просто. В частности, частные байты не очень полезны для ответа на вопрос, который вы задаете.

Первое, что нужно иметь в виду, это то, что страница памяти может существовать в основной памяти или во внешнем хранилище (в наши дни «разбиение на диски» или «подкачка»). Второе - это то, что процесс будет иметь частные страницы памяти на своем месте, но также будет использовать объекты на общих страницах, которые другие процессы используют в то же время.

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

Однако рабочий набор не относится исключительно к памяти, которой владеет ваш процесс. процессы используют много объектов общей памяти, и размер этих объектов отражается в статистике. к сожалению, когда два процесса совместно используют объект 1 МБ, оба их процесса показывают распределение 1 МБ в рабочем наборе, поэтому, если вы сложите все рабочие наборы, объект 1 МБ будет записан дважды, поэтому накопление всех размеров вашего рабочего набора может в крайних случаях, кажется, превышает размер доступного оперативной памяти. см. больше здесь: http://cybernetnews.com/cybernotes-windows-memory-usage-explained/

Частные байты - это объем файлового пространства страницы, который выделен процессу (не обязательно используется) в случае, когда объем памяти, занимаемый частной памятью процесса, полностью выгружен для замены. В большинстве случаев этот процесс не является полностью (или вообще не резидентным) файлом файла страницы, поэтому в личных байтах, по-видимому, имеется «пространство» для дальнейшего распределения. Однако это не так.

Однако закрытые байты относятся только к частной памяти процессов, поэтому это значение может не отражать общие ресурсы (даже если общий ресурс используется только этим процессом в настоящее время).

«Рабочий набор Private» («Частные байты WS» или «Private WS» в проводнике процессов в зависимости от версии), вероятно, является наилучшим показателем для вашего использования. он не касается файла подкачки, поэтому вы получаете точное представление о влиянии процессов на физическую память, и он не учитывает вдвойне общие объекты. общие объекты подсчитываются один раз (только для процесса, который их создал), но это также означает, что с точки зрения одного процесса вы не записываете, что ваш процесс использует общие объекты, созданные другим процессом, поэтому ваш процесс может использовать больше оперативной памяти на другом на машине или в ситуации, когда требовалось создать сам общий объект вместо использования другого экземпляра его процессов. Диспетчер задач Windows использует рабочий набор private в качестве показателя использования памяти.

надеюсь, это поможет

Фрэнк Томас
источник
1
Поэтому я был бы прав, говоря, что «Частные байты» - это количество памяти, которое запросил процесс, а «Рабочий набор» - это частные байты плюс немного дополнительной общей памяти, которую могут использовать другие процессы? И также, «Частный рабочий набор» - это объем частной памяти, который в настоящее время находится в физической памяти, который является наиболее точным представлением того, сколько памяти он фактически использует?
Скандал
4
да, довольно много Если вы беспокоитесь о бесплатной оперативной памяти, частный рабочий набор - это путь. Если вы беспокоитесь о файле подкачки или полной фиксации (оперативная память + виртуальная память), частные байты являются хорошим показателем.
Фрэнк Томас
«Частные байты» - это выделенное частное виртуальное адресное пространство процесса. Часть этого может быть в файле подкачки, некоторые в ОЗУ, некоторые в обоих местах, некоторые из них - возможно, большинство из них - могут вообще не иметь назначенного физического хранилища (пока). Это вклад процесса в общий «коммитный заряд» системы. «Частный рабочий набор» - это подмножество «частных байтов», находящихся в оперативной памяти. nb: Вы не найдете «приватных байтов» или чего-либо подобного на экранах RAMmap, потому что RAMmap касается только физической памяти (RAM), а не виртуальной.
Джейми Ханрахан