Контакты

Что в папке windows prefetch. Директория Prefetch: что за папка и зачем она нужна

Тема оптимизации Windows представляется большинству пользователей весьма важной и, наверное, именно потому с ней связано так много мифов. В одном из этих мифов утверждается, что увеличить место на диске, а также ускорить работу системы и приложений можно, производя определённые манипуляции с папкой Prefetch . Давайте же разберёмся, действительно ли это так и для чего вообще нужна папка Prefetch .


В Windows каталог Prefetch играет ту же роль, что и кэш в браузерах. Чтобы система или приложения запускались быстрее, Windows автоматически сохраняет часть их кода в особые файлы трассировки. Когда пользователь запускает, к примеру, ресурсоёмкое приложение, система сначала обращается к содержимому папки Prefetch , считывает сохранённую и «часть» программы в память, в результате чего последняя запускается быстрее.

В Windows папка Prefetch тесно связана с работой службы SuperFetch и компонента ReadyBoost , поэтому всякие действия с ней могут повлиять на их работу, причём не в лучшую сторону. Так, отключение службы SuperFetch может повлечь за собой снижение производительности системы на большинстве ПК за исключением либо старых машин с объёмом ОЗУ 1 Гб и менее, либо, напротив, очень мощных - с оперативной памятью более 16 Гб. Также SuperFetch может быть отключена, если в качестве системного диска используется SSD .

Что даст удаление содержимого папки Prefetch для оптимизации? Ничего, будет только хуже. Во-первых, время, необходимое на загрузку системы и некоторых программ увеличится, во-вторых, файлы PF будут созданы заново, на что системе опять придётся выделить часть ресурсов памяти. К тому же удаление каталога Prefetch ничуть не прибавит места на диске, так как весит эта папка обычно немного, а количество файлов в ней всегда ограничивается 128-ю .

Если вы так уже хотите управлять содержимым Prefetch , делать это нужно правильно, а именно - через реестр.

Откройте командой regedit редактор реестра и разверните эту ветку:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Memory Management \ PrefetchParameters

В правой колонке окна редактора найдите параметр и посмотрите его текущее значение.

Скорее всего, это будет 3 . Именно это значение включает ускорение запуска приложений и системы. Если вы хотите полностью их отключить, измените значение на 0 . Для ускорения только приложений установите 1 , для ускорения загрузки только системы установите 2 . Чтобы изменения вступили в силу, перезагрузите компьютер.

Чуть менее распространённым является миф о том, что программы можно ускорить, если добавить в их ярлык ключ /prefetch:1 . Это действие якобы добавляет выбранную программу в папку Prefetch . В действительности же добавление ключа /prefetch:1 к ссылке на объект никаким образом на работу приложения не влияет, создавать же или не создавать файлы трассировки решает служба Prefetcher , которой виднее, какие приложение нуждаются в оптимизации запуска, а какие нет.

Теперь об еще одной полезной функции, имя ей Prefetch.
Эта функция призвана оптимизировать загрузку приложений, которые Вы загружаете. Что бы при следующей загрузке они загружались быстрее.
Если я правильно помню.

Казалось бы, зачем нам ее трогать?
Дело в том, что со временем в папке Prefetch накапливается много файлов от тех приложений, что Вы заводили. А если вдобавок что-то ставили и удаляли, то файлы в Prefetch от удаленных программ остаются. И это начинает тормозить систему.
Поскольку при загрузке системы windows пытается найти все файлы, что значатся в Prefetch.

Нет однозначного мнения, что с этим делать кто-то советует удалять очищать эту папку при каждой загрузке, кто-то очищать раз в неделю, большинство юзверей советует отключить вообще.
Но, функция эта, безусловно, полезна.
Единственное что очищать ее, если вы имеете свойство ставить и удалять разные программы можно и раз в две недели.
Если просто пользуетесь уже поставленными программами то можно иногда очищать, когда вспомните. :)
Эти же файлы, вернее, их некий общий знаменатель - файл \Windows\Prefetch\layout.ini - используется затем дефрагментатором для оптимизации расположения файлов на диске, что еще больше сокращает время загрузки.

Если Вы еще не запутались, то Prefetch это встроенная функция оптимизации.
Что она делает?
Эта функция призвана сократить время загрузки приложений, тех что загружаются при старте системы и те что Вы часто используете.
Так вот в Prefetch содержатся файлы от наиболее часто загружаемым программах, иногда не от часто загружаемых. По какому принципу windows их отбирает я не знаю. Может как Бог на душу положит.
А дальше windows ждет пока Вы оставите свой компьютер и пойдете покурить, попить чайку и т.д. Точно не помню через какое время, по моему минут через 20 – 30 бездействия машины.
Windows согласно данным папки Prefetch начинает перемешать в начало диска программы которые часто используются для их более быстрой загрузки.
Так же как я упоминал она оптимизирует загрузку программ, помимо их перемещения.

Но часто оптимизируя свою систему юзеры невольно отключают эту функцию.
Дело в том для нормальной работы это службы нужны три вещи, которые часто отключают. Вернее две из них отключают.
1. Встроенный дефрагментатор
2. планировщик задач
3. Доктор Ватсон (хотя точно не помню).

Желательно об этом помнить.

Так что мы можем еще сделать.

1. Удалить либо все файлы из этой папки либо файлы от тех программ, что уже отсутствуют на машине.

2. найдите HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters\
Там есть ключ EnablePrefetcher (REG_DWORD)
К нему применимы значения (0, 1, 2, 3)
0 – отключено (Рекомендуется для маломощных компьютеров)
1 – рекомендуется для компьютеров с ОЗУ до 256МБ (Только программы)
2 – Для тех, у кого на борту от 512МБ и более (программы и системные библиотеки)
3 – Это уже рассчитано для супер-пупер мощных процов + минимум ОЗУ 512Мб, хотя при LargeSystemCache=1 прекрасно работает и на 256Мб ОЗУ.
Рекомендую EnablePrefetcher=3


"Enable"="Y"

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction
"OptimizeComplete"="Yes"

Есть одна легенда, ходящая по просторам сети.
Что в Windows Vista все приложения будут запускаться, и работать на 15% быстрее, чем в Windows XP. Так что вам совсем не нужно ждать выхода Windows Vista, что бы ощутить все прелести данной мульки, т.к. они уже заложены в WinXP SP2!!! Осталось только эту мульку (Super Prefetch) включить. Данная мулька работает ТОЛЬКО под Windows XP SP2 !

HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Control\Session Manager\ Memory Мanagement\PrefetchParameters\
1. Создаём параметр типа
DWORD
Value Name: EnableSuperfetch
Value: 1

2. Кто-то говорит, что нужно создать отдельный раздел.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\
Создаем раздел Prefetcher
Создаём параметр типа
DWORD
Value Name: EnableSuperfetch
Value: 1

Мнения разделяются, есть комментарии о мифе этого параметра, есть те, кто заметили увеличение производительности.
В любом случаи, что бы проверить. Вы ничего не теряете и ничего не приобретаете кроме лишней записи в реестре.

P.S. Если у кого-то стоит бета версия Висты, Будьте любезны, сделайте экспорт ветви HKEY_LOCAL_MACHINE\SYSTEM\ControlSet\Control\Session Manager\Memory Management
И вышлите мне, если Вас не затруднит.

Папку Prefetch можно обнаружить в Windows XP, Vista, 7, 8 по следующему пути: C:\Windows\Prefetch - она является компонентом операционной системы и ускоряет процесс начальной загрузки ОС и часто используемых программ. Впервые данная технология была применена в Windows XP, а начиная с Vista была дополнена технологиями SuperFetch и ReadyBoost. Запуск ОС или приложения сопровождается чтением данных из памяти, часто к одному и тому же файлу приходится обращаться несколько раз, что весьма нерационально и занимает много времени. Windows оптимизирует загрузку кода, сохраняя в папке Prefetch файлы трассировки, которые обрабатывает по-своему.

Для настройки папки Prefetcher нам понадобится редактор реестра. Сразу хотелось бы продублировать предупреждение с сайта Microsoft: "Неправильное использование редактора реестра может привести к серьезным неполадкам, требующим переустановки операционной системы. Редактор реестра вы используете на свой страх и риск ".

Нажимаем Пуск - Выполнить и вводим regedit . В редакторе реестра найдем следующий раздел: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters


Нас интересует параметр EnablePrefetcher . Он может принимать следующие значения:
0x00000000 - компонент отключен
0x00000001 - ускорение запуска приложений
0x00000002 - ускорение загрузки системы
0x00000003 - ускорение запуска приложений и загрузки системы

Таким образом, чтобы отключить Prefetch нужно два раза щелкнуть по параметру EnablePrefetcher и в диалогом окне указать значение 0 . По умолчанию используется 3 - для более быстрого запуска приложений и загрузки Windows. Необходимость отключения Prefetcher часто возникает при работе с Windows 8 - многие новые ноутбуки комплектуются не традиционным HDD жестким диском, а сверхбыстрым SSD-накопителем, которые пока характеризуются высокой стоимостью и небольшим объемом памяти.

При установленном SSD накопителе Windows 8 самостоятельно должна отключать службу Prefetcher, однако если этого не произошло, вы можете удалить Prefetch самостоятельно. В указанном выше разделе реестра для параметров EnablePrefetcher и EnableSuperfetch нужно задать значение 0 , то есть отключить их. Перезагрузите компьютер.

Системные файлы и папки Windows имеют множество мифов, не стала исключением и рассматриваемая нами служба. Часто приходится слышать вопросы: можно ли удалить папку Prefetch, как отключить или включить Prefetch. Но самое интересное заблуждение состоит в том, что добавление ключа /prefetch:1 в ссылку на объект во вкладке "ярлык" ускоряет загрузку приложения, поскольку ОС, видя данный ключ, добавляет программу в папку Prefetch. Добавление /prefetch:1 к адресу ни к чему не приведет , а миф основывается на том, что аналогичный ключ присутствует в строке запуска Windows Media Player.

Часто спрашивают, можно и нужно ли удалять файлы из папки Prefetch? Якобы, это позволяет освободить место на жестком диске. Ответ однозначный: НЕТ. Во-первых, при удалении данных файлов время загрузки ОС и некоторых программ увеличится, а файлы трассировки будут созданы заново. Во-вторых, Prefetcher сам управляет данными файлами без необходимости стороннего вмешательства. К тому же, Microsoft ограничила количество трассировочных файлов 128 штуками, чтобы они как раз не занимали слишком много места на диске.

Здравствуй, дорогой друг! Совсем недавно мы рассматривали тему про удаление временных папок. Там я рассказал про различные папки, в том числе и Temp, в которых со временем скапливается мусор. Эти мусорные файлы необходимо чистить. и опубликовал, но как оказалось не всё. Нашёл я папку интересную, которую многие видели, но боялись, в неё что-то удалить. Папка эта называется «Prefetch» и находится внутри папки Windows. Что за папка и зачем она нужна Вы узнаете ниже.

Что такое Prefetch?

Обратимся к глобальному хранилищу знаний — Википедии. Она гласит:

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

Оказывается, эта система наблюдает за тем какие программы Вы наиболее часто используете и записывает их в специальную папку: C:\Windows\Prefetch

Файлы там хранятся всякие разные с непонятными расширениями вроде этого.

Ну вообщем загрузчик Windows анализируя эти записи, заранее загоняет ПО в оперативную память, чтобы затем ускорить ответ на Ваше обращение.

Записи в папку prefetch по умолчанию делают не только системные, но и второстепенные приложения, а это замедляет загрузку. Нужно сделать так, чтобы в папку записывалась только информация с системных файлов.

Горячей комбинацией Win+R активируем окно ввода команд, и вводим regedit.

В редакторе реестра ищем такую вот ветку:

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

В правом окне нам надо изменить параметр EnablePrefetcher .

ПКМ выбираем «Изменить..».

По умолчанию стоит тройка. «3» говорит, что запущены как системные процессы, так и разного рода приложения. Если поставить 2, то мы запустим только системные процессы. Если 1 – только приложения, а 0 – вообще отключим.

Ставим двойку!

Нажатием клавиши «Ок» подтверждаем изменения.

Подведём итоги

Вот такими нехитрыми манипуляциями, мы хоть на чуточку оптимизировали свой «Виндовс»!

В Windows XP ключ /prefetch:1 по умолчанию добавляется к адресу файла в свойствах иконки запуска Windows Media Player. Что такое prefetch? У слова prefetch перевод на русский язык звучит как "предварительная выборка".


Смыслом этой функции является с Windows XP в целом. Она создает файлы в папке prefetch, содержащие информацию о путях к этим программам на жестком диске.


На сайтах в топе Яндекса по запросу "windows prefetch" можно найти некоторую дезинформацию об этой функции в Windows XP. В частности, на сайтах netler и izcity авторы поддерживают мифы о том, что для ускорения загрузки программ нужно добавлять в адресные строки их ярлыков ключ /prefetch: 1 , и что для ускорения загрузки системы нужно периодически удалять все файлы формата pf из папки prefetch .

В Windows XP папка Prefetch расположена обычно по адресу C:\windows\prefetch. В ней находятся файлы Prefetch с расширением *.pf - это списки файлов для загрузки, так называемые, хэш файлы. Их имена генерируются при хэшировании EXE файлов после загрузки. Каждый раз, когда Вы запускаете EXE файлы, происходит их хэширование и проверка, есть ли соответствующие им.pf файлы в папке Prefetch , и если да, то загружаются эти файлы. Если соответствующие файлы prefetch не существуют, система отслеживает, какие файлы задействует при запуске EXE программа, создает этот.pf файл и сохраняет в него пути к этим файлам.

  • Так что, во-первых, это не очень хорошая идея - очищать папку prefetch, как предлагают некоторые компьютерные сайты. Система просто создаст все эти файлы заново, в любом случае, если, конечно Вы не догадаетесь, как отключить prefetch.
  • Во-вторых, Windows автоматически удаляет файлы prefetch из этой папки, если их становится больше 128 штук. По этому, очистив эту папку, Вы не только не ускорите загрузку программ, но и временно ухудшите производительность Вашего компьютера.

Следующий момент...

Некоторые "специалисты" стали добавлять ключ /prefetch:1 при запуске программ. Многие заметили, что в автоматически созданных ярлыках для Win Media Player присутствует этот ключ, и его значение варьируется в зависимости от выполняемых программой функций. Например, ярлыку файла WMV, по которому Вы дважды щелкаете для просмотра видео, присваивается один параметр ключа prefetch, ярлыку автозапуска для воспроизведения или копирования музыки, которые появляются, когда Вы вставляете аудио компакт-диск - другие параметры.

Некоторые специалисты предположили, что ключ /prefetch: 1 включает процесс предварительной выборки . И они сразу стали добавлять его к каждому исполняемому файлу и рекомендовать делать это другим на разных сайтах и форумах. И таким образом сформировался этот миф. Другие специалисты написали на своих сайтах, что это полное фуфло, и выдвинули теорию о том, что этот ключ специфичен только для WM Player, увидев ссылки на файлы prefetch в подсистеме драйверов Windows.

Вобщем, ни те ни другие нифига не угадали.

Операционная система смотрит на параметр /prefetch:#, когда создает процесс и делает она это только с одной единственной целью. Она добавляет порядковый номер к хэшу . Зачем?

WMP имеет много разных функций. Библиотеки и код, которые он задействует при воспроизведении WMV, сильно отличаются от библиотек, участвующих в воспроизведении DVD, копировании компакт-диска, прослушивании Shoutcast-потока или любой из функций Windows Media Player. Если бы для WMP был только один хэш, то предварительная выборка корректно работала бы только для одной из его функций. При считывании неверных данных из файла prefetch не было бы фатальной ошибки - файл.pf просто загрузился бы в память и не был использован. Тем не менее, это было бы контрпродуктивно.

Параметр /prefetch:# с разными числами для каждой функции Windows Media Player позволяет для каждой функции создать свой отдельный хэш файл, и таким образом предварительная выборка выполняется правильно. Такие параметры prefetch характерны не только для WMP. То же самое делается для любого другого приложения.

Параметр /prefetch: принимается во внимание, когда создается первый поток в процессе, но не удаляется функцией CreateProcess из командной строки, поэтому любое приложение, которое не вкуривает неизвестные параметры командной строки, не будет работать с ним. Вот почему так много людей, заметили, что, например, Kazaa и многие другие программы выдавали ошибки или просто отказывались запускаться c windows prefetch. А WMPlayer конечно знает, что ключ может быть указан в параметрах, и просто молча игнорирует его существование.

Все что делает ключ /prefetch:# - изменяет хэш номер. Операционная система загружает программу с ним точно так же, как и без него, просто сохраняя данные о предварительной выборке в другой.pf файл .



Понравилась статья? Поделитесь ей