-4

Почему в общей сложности используется 5 ГБ памяти, когда все процессы вместе используют только более 2 ГБ? Почему система занимает столько ОЗУ?

2 ответа2

1

У систем, которые не испытывают недостатка памяти, нет причин пытаться освободить ОЗУ. На самом деле они используют столько оперативной памяти, сколько могут, потому что используемая оперативная память может повысить производительность. ОЗУ, которое не используется, тратится впустую, вы не сможете сэкономить ОЗУ на потом, поэтому современные операционные системы стараются использовать как можно больше ОЗУ.

Гораздо эффективнее напрямую переводить ОЗУ из одного использования в другое, чем делать его свободным, только чтобы снова сделать его свободным.

Такое поведение сделано намеренно. Если вы хотите, чтобы память сидела без дела, снимите ее с компьютера и положите на стол.

Если вы думаете: «Я хочу, чтобы оперативная память была свободна сейчас, чтобы я мог использовать ее позже», уберите это из головы. Вы можете использовать его сейчас и использовать его позже. Там нет компромисса, чтобы сделать здесь.

0

Во-первых, если заголовки столбцов соответствуют моим ожиданиям, первые два процесса используют 2 ГБ. (Обратите внимание, что "системный" процесс - это не операционная система ... во всяком случае, не все. Например, память, используемая выгружаемым и невыгружаемым пулами, файловый кэш и кэш SUperFetch, не отображается как часть "системного" процесса.)

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

В-третьих, ОС хранит множество вещей, которые не являются частью какого-либо процесса. Есть невыгружаемый пул. Существует резидентная (выгружаемая) часть выгружаемого пула. Резидентная часть системного файлового кэша (не кэш SuperFetch) также является частью памяти, которая считается "используемой" (не "доступной"). (Пространство, используемое SuperFetch, считается "доступным").

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

Windows позволяет оппортунистически расти процессам и другим используемым страницам, если нет нагрузки на оперативную память. Здесь у вас достаточно свободной оперативной памяти, чтобы сделать все, что вы в данный момент делаете снова, не закрывая ничего, что выполняется в данный момент. Это не система, испытывающая нехватку памяти, поэтому, конечно, Windows не экономит память.

Запустите точно такую же рабочую нагрузку на машине с оперативной памятью всего 6 ГБ, и вы, вероятно, увидите все несколько меньше, но не намного. Запустите все это на машине с 4 ГБ ОЗУ, и все определенно будет меньше (и, скорее всего, будет работать немного медленнее, но не намного, потому что, скорее всего, большая часть того, что находится в оперативной памяти в вашей текущей конфигурации, является "устаревшей" ... не очень вредно) в бездельничании.)

Вернемся к текущей настройке: если вам вдруг понадобится запустить что-то, скажем, еще 8 ГБ ОЗУ, Windows сократит существующие рабочие процессы - начиная с наименее активных - чтобы освободить место для этого. ОЗУ не похоже на бензин; как хорошо сказал Дэвид Шварц, нет необходимости экономить оперативную память сейчас, чтобы вы могли использовать ее позже. Windows может использовать его сейчас для одного, а затем позволить вам использовать его для другого позже. Это операционная система по запросу.

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