Почему система занимает так много оперативной памяти?

Почему система занимает так много оперативной памяти?

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

решение1

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

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

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

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

решение2

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

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

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

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

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

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

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

Связанный контент