Interested Article - Prefetcher
- 2020-08-13
- 1
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 обслуживает себя автоматически без участия со стороны пользователя .
-
В целях экономии дискового пространства максимальное количество трассировочных файлов ограничено 128
. Очистка папки
Примечания
- от 7 мая 2015 на Wayback Machine — From the December 2001 issue of MSDN Magazine.
- ↑ от 29 мая 2016 на Wayback Machine — Windows Vista Help.
- от 24 сентября 2010 на Wayback Machine — Windows Hardware Developer Central. 13 January, 2003.
- ↑ от 15 августа 2021 на Wayback Machine — MSDN Blogs. 25 May, 2005.
См. также
Ссылки
- 2020-08-13
- 1