4

В диспетчере задач Windows на вкладке Perofrmance я вижу это в разделе «Физическая память»:

Total 3582 
Cached 867 
Available 846
Free 11

Почему цифры не складываются в общую сумму? В чем разница между свободной и доступной памятью?

2 ответа2

2

Из описания Microsoft того, что представляют доступные байты в диспетчере задач :

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

Счетчик "Доступная память" в диспетчере задач фактически является суммой следующих трех списков внутренней памяти:

  • Резервный список.
  • Свободный список.
  • Нулевой список.

См. Выше статью для объяснения того, что означают эти списки.

0

Ответ smart-a * - «потому что они не должны складываться в общую сумму». :)

Серьезно: во-первых, вам не хватает "используемой" памяти. Другим термином для "в использовании" может быть «в рабочем наборе процессов, или в одном из рабочих наборов системы, или в выделении без страниц». Вкратце, это вся оперативная память, которая находится "под" виртуальными адресами, на которые можно ссылаться, не вызывая ошибки страницы. Вы можете вычислить "Используется" как "Всего" - "Доступно" - "Изменено" ... за исключением того, что у вас нет счетчика для списка Измененные страницы. MPL обычно довольно маленький, если вы не работаете без файла подкачки.

Как сказал harrymc, "Доступен" - это сумма трех списков, называемых списками страниц в режиме ожидания, свободными и нулями. Страницы Free и Zero не содержат информации, связанной с каким-либо запущенным процессом. В режиме ожидания, однако, содержатся страницы, потерянные от процессов, которые могут вскоре понадобиться этим процессам (они будут перенесены в эти процессы посредством одного типа "программной ошибки страницы"), но если некоторые страницы в режиме ожидания нужно будет использовать для другого Это может произойти мгновенно, потому что любые данные, которые находятся на страницах в режиме ожидания, также доступны на диске и могут быть считаны с диска при необходимости.

Итак, сразу вы можете увидеть, что если вы пытаетесь добавить "Доступно" и "Свободно" вместе, это ошибка ... потому что "Свободно" уже является частью "Доступно", так что вы считаете "Свободно" дважды.

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

Большим вкладом в расхождение, однако, обычно является счетчик "Кэшированный". В Windows 7 "Кэширование" включает как рабочий набор кеша файловой системы (не SuperFetch, это нечто другое), так и список резервных страниц. Поэтому, если вы попытаетесь добавить "Доступные" и "Кэшированные" вместе, вы дважды подсчитаете список ожидания, что, конечно, приведет вас в заблуждение.

В Windows 8 и 10 они еще больше запутали, посчитав MPL как часть "Cached" на дисплее диспетчера задач.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .