Prefetcher

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая 95.56.123.74 (обсуждение) в 13:22, 22 января 2010 (оформление). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску

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

Описание

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

Важную роль в работе компонента 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[2]. Параметр EnablePrefetcher (DWORD) может принимать одно из следующих значений:

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

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

Мифы и реальность

Существуют два самых распространенных мифа о Prefetcher:

  • Добавление ключа «/prefetch:1» в строку запуска приложения ускоряет его загрузку.

Этот миф основывается на том факте, что после установки операционной системы в строке запуска Windows Media Player изначально указан ключ «/prefetch:1». В реальности добавление этого ключа само по себе не дает никакого эффекта, а в некоторых случаях приложение может отказаться запускаться совсем[3].

  • Удаление файлов из папки %SystemRoot%\Prefetch ускоряет работу компьютера.

Этот миф основывается на предположении, что в папке %SystemRoot%\Prefetch скапливается слишком много файлов, поэтому Prefetcher начинает тормозить. В реальности очистка вышеуказанной папки приводит к замедлению работы компьютера до тех пор, пока трассировочные данные не будут снова накоплены[3].

Примечания

  1. What is the prefetch folder?Windows Vista Help.
  2. Kernel Enhancements for Windows XPWindows Hardware Developer Central. 13 January, 2003.
  3. 1 2 Misinformation and the The Prefetch Flag — Funny, It Worked Last Time. MSDN Blogs. 25 May, 2005.

См. также

Ссылки