Почему Vista использует всю мою память?

Неопытные пользователи Windows Vista постоянно задают вопросы относительного того, почему их новая ОС занимает всю оперативную память, при этом чем больше у них оперативной памяти, тем больше аппетиты Windows Vista. Давайте попробуем разобраться и расставить все точки над i.

Перво-наперво, стоит раз и навсегда понять и принять, что у Windows Vista абсолютно другой подход к управлению памятью. Другой означает, что не такой, как у Windows XP. B принципе их и сравнивать-то некорректно, но мы все-таки попробуем.

Посмотрите на строчку свободное количество физической памяти в диспетчере задач Windows Vista.

 

/

На момент снятия данного скриншота на компьютере было запущено несколько окон IE 7, плюс один удалённый рабочий стол. При этом свободно всего 6 Мб свободной памяти.

Теперь сравним этот скриншот со скриншотом из XP при примерно такой загрузке.

 

<!–IMG2–>/<!–IMG2–>

Напротив пункта Доступная физическая память написано, что свободно около 1.5 Гб – так и должно быть.

Так что же происходит? Почему Vista использует так много памяти, если на компьютере практически никаких действией не выполняется? Чтобы ответить на этот вопрос, нужно понять, на что расходуется оперативная память.

Предположим, что вы захотели создать новый текстовый файл.

1. Нажимаете два раза на иконке Блокнота.
2. Исполнительный файл Блокнота загружается с винчестера в память.
3. Блокнот исполнятся.
4. Блокнот распределяет свободную память для хранения вашего документа.

Итак, ясно, что блокнот нуждается в небольшом количестве памяти, достаточном, чтобы запустится и отображать своё содержимое. Но это может быть несколько мегабайт, как максимум. Даже если так. Что с оставшимися 2046 Мб памяти?

Вам надо перестать думать о системной памяти как о ресурсе, а начать думать, как о кэше. Как и L1 и L2-кэш вашего процессора, ОЗУ – всего лишь еще один высокоскоростной кэш между вашим компьютером и диском.

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

Диомидис Спинеллис (Diomidis Spinellis) опубликовал превосходный разбор рейтинга производительности кэша в типичном по состоянию на январь 2006 года компьютере.

 

<!–IMG3–>/<!–IMG3–>

В итоге, вот насколько быстрее ваша память, чем жёсткий диск:

Системная память – в 37 раз быстрее.
L2 кэш процессора – в 82 раза быстрее.
L1 кэш процессора – в 283 раза быстрее.

Эти данные объясняют, почему в Vista осталось всего 6 мегабайт свободной памяти. Vista старается предельно заполнить каждый байт памяти данными, которые, по её мнению, могут понадобится в следующий момент. Vista запускает с низким приоритетом фоновые процессы и размещает их в неиспользованную системную память. У Microsoft для этих процессов есть даже причудливое маркетинговое название – SuperFetch: В прошлых версиях Windows реакция системы могла быть неравномерной. Вы могли сталкиваться с медленной работой системы после загрузки, после нескольких быстрых переключений пользователей или просто после обеда. Также как большое количество углеводов могут вас замедлить после еды, так и ваш компьютер может начать тормозить по разным причинам. Когда вы активно не используете компьютер, то фоновые задачи, включая автоматические резервные копии и антивирусное сканирование, пользуются этим, чтобы исполнятся, в тот момент, когда они меньше всего вас могут потревожить. Эти фоновые задачи могут занимать место в системной памяти, которое использовали ваши приложения. После того, как вы снова начнёте использовать компьютер, потребуется какое-то время, чтобы повторно загрузить ваши данные в память, что снизит производительность.

SuperFetch понимает, какие приложения вы используете чаще всего, и загружает их в память заранее, таким образом, ваша система быстрее реагирует на запросы. SuperFetch использует интеллектуальную схему системы приоритетов, которая понимает, какие приложения вы используете чаще всего, и даже способна различить какие приложения, вероятно, вы будете использовать в разное время, например, на выходных, а не во время рабочей недели, так что компьютер готов делать то, что хотите делать вы. Windows Vista может также расположить по приоритетам ваши приложения в фоновых задачах, так что даже когда вы выводите свой компьютер из режима простоя, система практически моментально готова к работе.

Конечно, это не новый концепт. Но Vista обрабатывает системную память как кэш намного агрессивнее и эффективнее, чем предыдущие версии Windows. Как вы можете заметить из вышеуказанного скриншота менеджера задач, Windows XP совершенно не волнуется по поводу того, что свободен целый гигабайт памяти. С перспективы кэширования – это уму непостижимо. Vista на пределах возможного старается, как может, чтобы заполнить системную память.