Interested Article - Prefetcher

Prefetcher — компонент операционной системы Microsoft Windows , ускоряющий процесс её начальной загрузки , а также сокращающий время запуска программ. Prefetcher впервые появился в операционной системе Windows XP . Начиная с Windows Vista , он был дополнен технологиями и ReadyBoost .

Описание

Запуск Windows и приложений сопровождается чтением в память и обработкой огромного количества файлов. Зачастую один и тот же файл открывается по несколько раз для чтения различных сегментов. Такой нерациональный доступ к файлам занимает много времени. Гораздо эффективнее обращаться к каждому файлу только один раз, загружая информацию в оперативную память ещё до того, как она станет нужна программам. Prefetcher наблюдает за тем, какой код и данные (включая NTFS Master File Table ) загружаются в процессе запуска операционной системы и приложений. Он накапливает эти сведения в файлах трассировки для оптимизации загрузки кода и данных при следующих запусках.

Prefetcher наблюдает за запуском каждого приложения в течение первых 10 секунд. Наблюдение за процессом загрузки системы ограничено по времени и прекращается в следующих случаях :

  • по истечении 30 секунд с момента запуска пользовательской оболочки
  • по истечении 60 секунд с момента завершения инициализации всех служб
  • по истечении 120 секунд с момента начала загрузки системы

Файлы трассировки сохраняются в папке Prefetch корневого каталога Windows (обычно C:\WINDOWS\Prefetch ). Загрузка операционной системы трассируется в файл NTOSBOOT-B00DFAAD.pf . Запуск программ трассируется в отдельные файлы, имена которых состоят из названия исполняемого файла запускаемой программы, дефиса, шестнадцатеричного хеша пути к исполняемому файлу и расширения «.pf» (например: EXPLORER.EXE-082F38A9.pf ). При запуске приложений, являющихся рабочей средой для других компонентов (например: DLLHOST.EXE , MMC.EXE , RUNDLL32.EXE ), в хеш также добавляется имя загружаемого модуля, в итоге для разных компонентов создаются разные файлы трассировки (например: MMC.EXE-0B0171A2.pf , MMC.EXE-393F4B82.pf ).

Важную роль в работе компонента Prefetcher играет служба « Планировщик заданий » ( англ. Task Scheduler ). «Планировщик заданий» анализирует данные, поступающие от Prefetcher, и записывает файлы трассировки в папку %SystemRoot%\Prefetch . Если служба не запущена, Prefetcher не будет работать правильно. «Планировщик заданий» также взаимодействует с программой дефрагментации диска Windows . Каждые три дня во время простоя компьютера в папке %SystemRoot%\Prefetch создается файл Layout.ini , в котором сохраняется список файлов и папок, использовавшихся при загрузке операционной системы и запуске программ. Дефрагментатор диска использует информацию из файла Layout.ini для оптимального физического размещения этих файлов на диске.

Настройка

Параметры Prefetcher хранятся в системном реестре в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters . Параметр EnablePrefetcher (DWORD) может принимать одно из следующих значений:

  • 0x00000000 — компонент отключен
  • 0x00000001 — ускорение запуска приложений
  • 0x00000002 — ускорение загрузки системы
  • 0x00000003 — ускорение запуска приложений и загрузки системы

Изменение параметра EnablePrefetcher вступает в действие немедленно.

RootDirPath

Файл предварительной выборки системной, начальной загрузки расположен в каталоге %SystemRoot%\Prefetch и путь к нему задан именно этим параметром.

Значение по умолчанию = Prefetch

Мифы

Существует несколько распространенных мифов о Prefetcher:

  • Добавление ключа «/prefetch:1» в строку запуска приложения ускоряет его загрузку.
    Этот миф основывается на том факте, что после установки операционной системы в строке запуска Windows Media Player изначально указан ключ «/prefetch:1». В реальности данный ключ инструктирует систему сохранять и использовать данные Prefetch для конкретного приложения под разными именами в зависимости от числа, указанного в ключе после двоеточия.
  • Удаление файлов из папки %SystemRoot%\Prefetch ускоряет работу компьютера.
    Этот миф основывается на предположении, что в папке %SystemRoot%\Prefetch скапливается слишком много файлов, поэтому Prefetcher начинает «тормозить» систему. В реальности очистка вышеуказанной папки приводит к замедлению работы компьютера до тех пор, пока трассировочные данные не будут снова накоплены .
  • Со временем папка %SystemRoot%\Prefetch начинает занимать много места на диске.
    В целях экономии дискового пространства максимальное количество трассировочных файлов ограничено 128 . Очистка папки %SystemRoot%\Prefetch не требуется, так как Prefetcher обслуживает себя автоматически без участия со стороны пользователя .

Примечания

  1. от 7 мая 2015 на Wayback Machine From the December 2001 issue of MSDN Magazine.
  2. от 29 мая 2016 на Wayback Machine Windows Vista Help.
  3. от 24 сентября 2010 на Wayback Machine Windows Hardware Developer Central. 13 January, 2003.
  4. от 15 августа 2021 на Wayback Machine — MSDN Blogs. 25 May, 2005.

См. также

Ссылки

Источник —

Same as Prefetcher