4

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

В настоящее время у меня есть система Windows XP, которая сообщает об использовании системы Commit как меньше, чем использование физической памяти. Насколько я понимаю, System Commit - это общий объем файла подкачки плюс использование оперативной памяти. Как говорит Википедия:

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

Итак, как можно использовать ОЗУ выше, чем сумма ОЗУ и использование файла подкачки?

Скриншот Process Explorer

1 ответ1

7

Сумма комиссионного сбора не включает всю физическую память; он учитывает только всю физическую память, которая может быть выгружена на диск.

От расширения границ Windows - виртуальная память (я бы порекомендовал прочитать всю статью)

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

а также

Не вся виртуальная память, выделяемая процессом, учитывается в пределе фиксации. Как вы видели, зарезервированная виртуальная память - нет. Виртуальная память, представляющая файл на диске, называемая представлением сопоставления файлов, также не учитывается в пределе, если приложение не запрашивает семантику копирования при записи, поскольку Windows может отбрасывать любые данные, связанные с представлением, из физической памяти, а затем получить его из файла. Таким образом, виртуальная память в адресном пространстве Testlimit, где отображаются ее исполняемый и системные образы DLL, не учитывается в пределе фиксации. Существует два типа виртуальной памяти процесса, которые учитываются при ограничении фиксации: частная и с подкачкой файла подкачки.

Таким образом, использование памяти некоторых ОС не учитывается до этого предела, равно как и отображение файлов в памяти. В Windows все файлы EXE и DLL загружаются как файлы с отображением в памяти. Они загружаются в физическую память, но поскольку они не изменяются после загрузки (обычно), Windows не поддерживает их в файле подкачки, поскольку она знает, что может просто перечитать их из файла на диске - вот почему они не не рассчитывать на предел фиксации.

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