Информация к новости
  • Автор: remo
  • Дата: 19 июнь 2012 20:06
19 июнь 2012 20:06
Технология SuperFetch. С чем едят и для чего она нужна?

Категория: Windows 7 Seven / Обзоры и советы / Просмотров: 84924 / Комментариев: 2

Windows 7 включает в себя механизм кеширования файлов, который называется SuperFetch. Этот механизм используется для кешированя (сохранения) наиболее часто используемых файлов приложений в оперативную память, так что, в дальнейшем, эти приложения будут открываться все быстрее.

  

Технология SuperFetch. С чем едят и для чего она нужна?

 

SuperFetch — это системный сервис, запускающийся внутри системного процесса svchost. Код его находится внутри DLL-ки %SystemRoot%\System32\Sysmain.dll. Этот сервис постоянно следит за тем, какие приложения запускает пользователь, и к каким исполняемым файлам и файлам данных они обращаются. 

Вначале SuperFetch отслеживает пользовательскую активность и определяет наиболее часто используемые приложения, для чего создаёт базу данных, которая постоянно обновляется по ходу работы пользователя. Вся эта информация сохраняется в файлах с расширением *.db в каталоге %SystemRoot%\Windows\Prefetch.  

Затем при каждом запуске системы SuperFetch, имея информацию о том с какими приложениями пользователь работает наиболее часто — заранее подгружает в память соответствующий код и данные и, когда пользователь запускает свое приложение — вся необходимая информация уже имеется в памяти, и запуск происходит на много быстрее — потому как нет необходимости считывать информацию с жесткого диска. Особенно это заметно на таких «тяжелых» приложениях, как семейство MS Office, функционал которых может быть «размазан» по десяткам и сотням exe-шников и dll-ок. SuperFetch настолько «умна», что может даже определять предпочтения пользователя в разные дни и время суток. 
Казалось бы что процесс выглядит завершённым, но это не так. SuperFetch играет гораздо более значительную роль в способности системы сохранять свою эффективность со временем.
Поскольку  множество приложений одновременно требуют определенного объема оперативной памяти, SuperFetch задействует технологию расстановки приоритетов операций ввода/вывода, которая помечает каждое приложение как программу с относительно низким или высоким приоритетом ввода/вывода.
Благодаря такой системе, SuperFetch определяет приложение с низким приоритетом как побочное, а приложение с высоким приоритетом — как главное. При этом SuperFetch постоянно отслеживает изменения приоритетов, чтобы система могла реагировать сообразно и в дальнейшем.

Если  какое либо приложение, завершает свою работу и освобождает память — то SuperFetch обращается к менеджеру памяти с просьбой подгрузить только что выгруженный код и данные. Процесс этот происходит с маленькой скоростью и с низшим  приоритетом, поэтому работа SuperFetch не приводит к падению производительности.

Если сравнительно долго работать с документом в программе Word. то всё это время приложение Word распознаётся службой SuperFetch как программа с высоким приоритетом и, соответственно, определяется как главная. перестав работать с этой программой, Word перестаёт быть активным приложением и другие работающие в фоновом режиме задачи, включая "Дефрагментатор диска", понимают, что ресурсы системы свободны и начинают действовать.
Когда это происходит, "Дефрагментатор диска" получает высокий приоритет, а Word — низкий, и SuperFetch удаляет Word из памяти в файл подкачки, освобождая место для процессов "Дефрагментатора диска". А сразу же по завершении этих процессовSuperFetch заново возвращает Word обратно в кэш памяти, поэтому, когда вы, через какое то время снова запустите World, скорость отклика Word остаётся той же, какой и была в момент вашего выхода из программы (то есть системе не потребуется загружать Word в память).

SuperFetch может обрабатывать режимы гибернации, «спящий режим» и смены пользователя. Если система уходит в гибернацию — то SuperFetch сохраняет в файл hiberfil.sys код и данные тех приложений, которые, по его мнению, скорее всего будут использоваться после выхода из гибернации. 

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

SuperFetch появился еще в Windows Vista, но стоит отметить, что работа и использование КЭШа возможностью SuperFetch в Windows 7 значительно отличаются оттого, что было в Vista. Так, под Vista кэширование приложений начинается сразу после загрузки операционной системы. Как видно из графиков ниже, спустя уже три минуты после загрузки выделено уже около 1GB памяти. В тоже время в Windows 7 SuperFetch начинает работать через пять минут после загрузки и спустя 10 минут выделение памяти немногим более превышает 600MB. Тогда как в этой же точке Vista SuperFetch выделил уже более 1,5GB памяти.

 

Технология SuperFetch. С чем едят и для чего она нужна?



Впрочем, даже с выключенным SuperFetch, Windows 7 требует меньше КЭШа. Для собственной  работы она использует 333MB памяти, тогда как Vista без SuperFetch использует уже 519MB.

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

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

Но, конечно, SuperFetch требует немалый объём памяти. Если у вас установлено 512 Мбайт, то служба не будет работать эффективно, поскольку Windows и 2-3 приложения уже "съедят" всю доступную память. И для кэшированных данных памяти просто не останется. Если же вы не работаете с несколькими приложениями одновременно, то SuperFetch положительно проявит себя уже при 1 Гбайт памяти. Но, объём ОЗУ 2 Гбайт и более отнюдь не повредит.

Управление службой SuperFetch

В операционной системе Windows 7, возможно контролировать уровень ускорения работы службы  Superfetch через реестр. 
По умолчанию, функция Superfetch включена для ускорения запуска системы и загрузки приложений (параметр DWORD 3). Тем не менее, вы можете либо отключить ускорение и загрузки системы и запуска приложений, либо что-то одно.

1. Нажмите сочетание клавиш WIN+R, в строке поиска введите regedit и нажмите Enter.

Откроется редактор реестра Windows.

2. Слева перейдите к ключу реестра

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management\PrefetchParameters

3. Справа двойным щелчком откройте окно редактирования параметра EnableSuperfetch и установите для него значение от 1 до 3 (если этого ключа нет, создайте его: нажмите правой кнопкой, выберите Создать – Параметр DWORD - назовите егоEnableSuperfetch и установите ему значение от 1 до 3).

4. Так же отредактируйте ключ EnablePrefetcher и установите для него значение от 1 до 3 (если ключа нет, создайте его: нажмите правой кнопкой, выберите Создать – Параметр DWORD - назовите его EnablePrefetcher и установите ему значение от 1 до 3).

Где:

0 – ускорение запуска отключено
1 – ускорение запуска только приложений
2 – ускорение только загрузки системы
3 – ускорение загрузки системы и запуска приложений

 

Технология SuperFetch. С чем едят и для чего она нужна?

 

Для отключения службы SuperFetch достаточно ввести в командной строке, запущенной с правами администратора строку

sc config SysMain start= disabled

и перезагрузить компьютер.

 

Автор:  Юрий Устинов.

источник


Нашли ошибку в тексте? Выделите фрагмент текста и отправьте нажатием Ctrl + Enter
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
<

30 октября 2013 06:38

0 комментариев

0 публикаций

Так, под Vista кэширование приложений начинается сразу после загрузки операционной системы... В тоже время в Windows 7 SuperFetch начинает работать через пять минут после загрузки...


А есть какая либо официал. информация по этому поводу?
<

30 мая 2014 03:40

0 комментариев

0 публикаций

А вот у меня сразу гигабайт озу забивается.
Так что Шура задал довольно интересный вопрос

Добавление комментария

Имя:*
E-Mail:*
Комментарий:
b
i
u
s
|
left
center
right
|
emo
url
leech
color
|
hide
quote
translit
Вопрос:
Допишите недостающие буквы в слове: Укра_на (слово в ответе писать целиком)
Ответ:*
Введите код: *
2011-2014 WikiWin.info
Microsoft Windows © и логотип Windows © являются зарегистрированными товарными знаками компании Microsoft Corporation © в США а так же в других странах.
Администрация сайта не несет ответственность за содержание и достоверность информации.
В случае, если Вы обнаружили свою статью, и считаете что Ваши авторские права нарушены ее размещением - немедленно свяжитесь с нами,
администрация сайта обязуется удалить материалы при первом требовании!
Для связи з администрацией ([email protected])