Недавно мне позвонил деловой партнёр, который только что приобрёл новый ноутбук с ОС Windows Vista Home Premium, 2 Гб оперативной памяти и видеокартой ATI Radeon объемом 512 Мб. В целом его устроила производительность системы, за исключением доступного объёма ОЗУ.
Он сказал мне, что каждый раз, работая в нормальных условиях и запуская совсем немного приложений, он открывал вкладку "Быстродействие" (Performance) в окне "Диспетчера задач Windows" (Task Manager) и видел, что объём "Доступной" (Available) "Физической памяти" (Physical Memory) не превышает 10 Мб. После чего он добавил, что при работе на своей старой системе Windows XP с 1 Гб ОЗУ и при тех же условиях значение соответствующего показателя варьировалось от 500 до 700 Мб.
Будучи сильно удивлённым различием в методах расходования данного ресурса двумя операционными системами, он пришёл к выводу, что Vista есть пожиратель оперативной памяти и спросил меня о возможных причинах этого феномена.
Я ответил, что объектом его недовольства является ничто иное, а именно - новое средство для увеличения производительности Vista, именуемое SuperFetch, и что столь малый объём доступной оперативной памяти — это совсем не плохо, а наоборот хорошо.
Ввиду того, что другие пользователи Vista могут отреагировать на это так же, как и мой друг, я счёл нужным дать развёрнутое объяснение механизма работы SuperFetch в очередном обзоре возможностей этой операционной системы.
Сравнение Vista с XP
Чтобы увидеть разницу, мы сравним данные, представленные на вкладках "Быстродействие" (Performance) одинаково оборудованных машин с операционными системами XP и Vista. В левой части изображения A показана вкладка "Диспетчера задач" Windows XP, в правой части — Vista.
Изображение A. Сравнение производительности. Нажмите, чтобы увеличить
На обе системы установлен 1 Гб оперативной памяти. Тот факт, что XP измеряет её в килобайтах, а Vista — в мегабайтах, не должен ввести вас в заблуждение. Если перевести оба показателя в гигабайты, мы получим примерно равные значения.
На обеих системах запущены только Internet Explorer и Paint. Но если взглянуть на количество доступной памяти в XP, можно увидеть, что оно составляет 589 Мб, в то время как у Vista — 5 Мб. Причина столь большой разницы состоит в том, что Windows XP использует ОЗУ только по мере необходимости, а Vista использует всю память в качестве кэша.
Достоинства SuperFetch
В целях использования ОЗУ как кэша Vista задействует технологию SuperFetch для эффективного управления ресурсом. Алгоритм управления памятью многошаговый.
Сперва SuperFetch отслеживает пользовательскую активность и определяет наиболее часто используемые приложения, для чего создаёт базу данных, которая перманентно обновляется по ходу работы пользователя. В соответствии с информацией из этой базы данных, SuperFetch даёт инструкцию "Дефрагментатору диска" (Disk Defragmenter) следить за стратегическим расположением на диске часто запускаемых приложений, чтобы их можно было как можно быстрее загрузить в память, минимизируя при этом количество физических движений головок чтения/записи. Затем при каждом запуске системы SuperFetch заранее загружает эти приложения в память. Таким образом, когда вы запускаете свою любимую программу, она выгружается намного быстрее из кэша ОЗУ, чем когда система читает её с диска и загружает в память.
На первый взгляд процесс выглядит завершённым, но это не так. SuperFetch играет гораздо более значительную роль в способности системы сохранять свою эффективность со временем.
Поскольку среда оперативной памяти энергозависима и множество приложений одновременно требуют определенного объема, SuperFetch задействует технологию расстановки приоритетов операций ввода/вывода, которая помечает каждое приложение как программу с относительно низким или высоким приоритетом ввода/вывода.
Благодаря такой системе, SuperFetch определяет приложение с низким приоритетом как побочное, а приложение с высоким приоритетом — как главное. При этом SuperFetch постоянно отслеживает изменения приоритетов, чтобы система могла реагировать сообразно и в дальнейшем.
Представьте, что вы сравнительно долго работаете с документом в программе Word. Всё это время приложение Word распознаётся системой как программа с высоким приоритетом и, соответственно, определяется как главная. Когда вы уходите на обеденный перерыв, Word перестаёт быть активным приложением и другие работающие в фоновом режиме задачи, включая "Дефрагментатор диска", понимают, что ресурсы системы свободны и начинают действовать.
Когда это происходит, "Дефрагментатор диска" получает высокий приоритет, а Word — низкий, и SuperFetch удаляет Word из памяти в файл подкачки, освобождая место для процессов "Дефрагментатора диска". А сразу же по завершении этих процессов SuperFetch заново возвращает Word обратно в кэш памяти, поэтому, когда вы приходите с обеда, скорость отклика Word остаётся той же, какой и была в момент вашего ухода (то есть системе не потребуется загружать Word в память).
Что вы думаете?
Теперь, зная, что Vista использует оперативную память как кэш, а не как ресурс, вы понимаете, почему количество "Доступной памяти" на панели "Физической памяти" вкладки "Быстродействие" в окне "Диспетчера задач" столь невелико. Если вы обладаете полезными сведениями относительно возможностей технологии SuperFetch, напишите свой отзыв в раздел комментариев.