Prefetch: что это за папка и можно ли ее удалить?

Продолжая изучать компьютер на предмет различных папок и файлов, вы можете обнаружить много интересного. Зачастую те же папки вызывают неподдельный интерес по той простой причине, что файлы в них порой занимают немало места на жестком диске, в результате чего возникает вопрос, можно ли удалять эти файлы. Сегодня поговорим о папке Prefetch.
Папка Prefetch находится в папке Windows (обычно это C:\Windows\Prefetch). Она используется как один из компонентов для загрузки операционной системы Windows, благодаря которому загрузка ОС ускоряется, а время, затрачиваемое на запуск программ, уменьшается. Сам компонент называется Prefetcher и впервые появился еще на Windows XP.
Как работает Prefetcher? Загрузка операционной системы сопровождается обработкой большого количества файлов. При этом некоторые файлы открываются множество раз для чтения различных сегментов. Этот процесс может занимать много времени, поэтому куда удобнее и продуктивнее обращаться к каждому из файлов только один раз, загружая информацию в оперативную память ещё до того, как она станет нужной. Prefetcher позволяет накапливать эти сведения в файлах трассировки для оптимизации загрузки кода и данных при следующих запусках за счет того, что наблюдает за тем, какой код и данные загружаются в процессе запуска операционной системы и приложений.
Параметры Prefetcher хранятся в системном реестре. Вы можете изменить параметры Prefetcher.
Нажмите на сочетание клавиш WIN+R. Появится окно «Выполнить», введите в него слово regedit и нажмите ОК. Так вы откроете редактор реестра.

Когда редактор будет открыт, пройдите по следующему пути: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters.
Выберите параметр EnablePrefetcher.

Кликните по нему два раза. Появится окно, в котором вы можете установить одно из значений:
- 0x00000000 — компонент отключен
- 0x00000001 — ускорение запуска приложений
- 0x00000002 — ускорение загрузки системы
- 0x00000003 — ускорение запуска приложений и загрузки системы
Нужно вводить не указанный параметр, а только цифру на его конце, например, 0, 1, 2 или 3.

И будьте внимательны при работе с реестром. Если чего-то не понимаете, не меняйте ничего, поскольку одно неосторожное движение может привести к проблемам в работе операционной системы!
Можно ли удалить папку Prefetch?
Существует легенда, согласно которой в папке Prefetch собираются файлы, которые требуют удаления. Это не так. Файлы временные и система при необходимости самостоятельно их удаляет, поэтому, кстати, размер папки такой небольшой. Так что файлы в указанной папке трогать не стоит.
Если же вы все-таки удалите файлы, то ничего не произойдет, однако скорость загрузки приложений может упасть. При этом файлы будут созданы заново автоматически.
Комментарии к записи “ Prefetch: что это за папка и можно ли ее удалить? ”
Спасибо, что есть подобные разделы в интернете. В паспорте компа ничего дельного нет, а за счет материалов в сети я разгрузил память своего железа почти до девственной, какой она была при покупке.
вот блин, а я где-то прочитал, типа удали и тебе будет хорошо
Есть ли возможность указать системе кешировать только часто используемое?
Сейчас нашел в prefetch «iexplore» с сегодняшней датой изменения. Пользовался им единственный раз в жизни, чтобы браузер скачать, а система его, оказывается, бережно кешировала, собака.
Имхо, стоит изредка удалять такой временный мусор. например, .tmp -файлы у меня никогда корректно не удалялись, выгребал мегабайты мусора руками.
полностью удалил, скорость добавилась
Спасибо за науку! Доброе дело делаете — людям помогаете. Здоровья вам и удачи по жизни!
Играет ли папка Prefetch какую-то роль в оптимизации работы Windows и приложений
Каждый раз, когда Вы включаете компьютер, Windows отслеживает, как запускается Ваш ПК, и какие программы Вы часто открываете. Windows сохраняет эту информацию в виде небольших файлов в папке Prefetch. При следующем включении компьютера ОС ссылается на эти файлы, чтобы ускорить процесс запуска.
Папка Prefetch находится в каталоге ОС, полное расположение выглядит так:
C:\Windows\Prefetch. В вашем конкретном случае метка тома может отличаться.
Перейдя в папку, Вы увидите каталог ReadyBoot и файлы в основном с расширением pf. Например, загрузка ОС трассируется в файл с названием NTOSBOOT-B00DFAAD.pf. Все остальные элементы являются трассировками запуска программ и служебных компонентов. Файлы имеют в названии имя исполняемого файла, его шестнадцатеричного хеша пути и расширение, например, EXCEL.EXE-53A22446.pf.

Работу по формированию файлов трассировки выполняет компонент Prefetcher, но без функционирующего планировщика заданий Prefetcher будет работать неправильно. Данные поступившие от Prefetcher обрабатываются планировщиком заданий и далее записываются в папку Prefetch.
Также стоит обратить внимание на файл Layout.ini. Он создается каждые 3 дня и хранит в себе данные (перечень файлов и папок), которые используются при запуске системы и программ. Данные из Layout.ini использует утилита дефрагментации диска для рационального размещения файлов на жестком диске.
Папка Prefetch в Windows 7 и выше: стоит ли ее очищать
Удаление данных из этого каталога никаких критических изменений в работе системы или установленных программ не вызовет.
Но вот абсолютно неправы все те, кто утверждает, что после удаления информации из этого каталога загрузка системы и запуск приложений станет быстрее. Как раз наоборот, ведь системе или программе придется заново запускать собственные модули, помещая их в оперативную или виртуальную память компьютерного устройства, а это занимает время. Использование данных директории Prefetch затрачиваемое на эти процессы время сокращает существенно. Поэтому очисткой по большому счету заниматься нежелательно, тем более — удалять саму папку.
Тут важно понимать, что при последующих загрузках данные о процессе все равно будут сохранены. Так что очистка и удаление окажутся тем, что принято называть «сизифов труд».
Мифы про удаление содержимого папки Prefetch
Часто утверждается, что удаление папки Prefetch приводит к меньшему времени загрузки и большей свободной памяти. Некоторые эксперты считают, что Windows загружает информацию из папки Prefetch для всех программ, которые когда-нибудь запускались на ПК, в оперативную память, тем самым заполняя ее неиспользуемыми данными (это неверно). Эти эксперты рекомендуют удалять на регулярной основе содержимое папки Prefetch, чтобы сохранить память от неиспользуемых данных.
Папка Prefetch является самообслуживающейся, нет необходимости удалять или очищать ее содержимое. Windows поддерживает определенное число записей в Prefetch и очищает автоматически излишние данные, предотвращая увеличение объемов папки. Если Вы опустошите содержимое папки вручную, тогда Windows и программы займут больше времени для запуска при следующем включении компьютера. Удаленные данные будут воссоздаваться, что приведет к длительному времени загрузки. Удалять папку Prefetch или ее содержимое с точки зрения освобождения памяти на жестком диске бессмысленно, тат как она весит мало. В нашем случае это около 40 мб.
Prefetch: что за папка
Рассмотрение вопроса начнем с подачи теоретического материала. При старте операционная система отслеживает процесс загрузки, сохраняя о нем все данные для ускорения последующего запуска в каталоге Prefetch. Что за папка перед нами?
По сути, на жестком диске компьютера, содержащая актуальные данные, параметры и компоненты полного цикла загрузки системы и запуска наиболее часто используемых программ.
Чтобы в следующий раз не загружать все компоненты с нуля, Windows и использует данные, сохраненные на винчестере. Некоторые юзеры, правда, утверждают, что для каждого последующего запуска системы информация, хранящаяся в каталоге Prefetch, становится устаревшей. Поэтому, с их точки зрения, время от времени нужно очищать директорию Prefetch. Что за папка Prefetch, немного понятно. А вот далеко не все любители очистки знают, что данные в ней перезаписываются автоматически после каждого старта или запуска приложения.
Посмотрим на практические стороны вопроса об удалении ее содержимого. Чуть позже будет сказано о том, как отключить использование функции ускорения загрузки, если это кому-то уж слишком сильно мешает.
Управление компонентами SuperFetch и Prefetch
По умолчанию Windows 7, 8, 10 отключает автоматически SuperFetch и Prefetch при обнаружении загрузки системы с SSD. Для SSD данные технологии не представляют ценности и вовсе тормозят процессы запуска, излишними операциями. Если ОС автоматически для SSD не отключила данные компоненты, тогда читайте инструкцию ниже.
SuperFetch – это служба, которая предсказывает, какие приложения Вы будете запускать дальше, и предварительно загружает эти данные в память. Windows дает возможность пользователю изменить настройки или отключить SuperFetch и Prefetch, через реестр и службы ОС. Если Вы используете традиционный HDD, тогда эти функции отключать не рекомендуется.
Важно! Во избежание ошибок, сделайте резервную копию реестра или точку восстановления системы.
Откройте реестр Windows 7, 8,10. В реестре перейдите до раздела PrefetchParameters (путь внизу скриншота). Обратите внимание на 2 параметра EnablePrefetcher, EnableSuperfetch.
Кликните далее двойным кликом по EnablePrefetcher. В поле «значение» установите новый параметр.
Значения для EnablePrefetcher:
- 0 – отключение;
- 1 — Включение для запуска приложений;
- 2 — Включение для запуска системы;
- 3 — Включение для запуска приложений и системы.
По умолчанию задано значение 3, измените его на 0 или на 1, 2. После изменений кликните OK.
Значения для EnableSuperfetch:
- 0 – отключение;
- 1 — Включение для загрузочных файлов;
- 2 — Включение для приложений;
- 3 — Включение для загрузочных файлов и приложений.
Теперь Вы знаете, что за папка Prefetch, можно ли удалить и какие компоненты ОС ей управляют. Содержимое папки лучше не трогать, она обслуживает сама себя, нет необходимости участия пользователя. На HDD лучше не отключать функции SuperFetch и Prefetch, это замедлит систему в целом.
Управление службой Prefetcher
Управлять работой службы Prefetcher можно в редакторе реестра:
- Нажмите комбинацию клавиш Win+R и пропишите Regedit
- В редакторе следуем по пути: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
- Открываем параметр EnablePrefetcher и смотрим на значение, что в нем указано.
Данный параметр оперирует значениями от 0 до 3, которые означают:
- 0x00000000 — отключение компонента;
- 0x00000001 — ускорение загрузки приложений;
- 0x00000002 — ускорение запуска Windows;
- 0x00000003 — ускорение загрузки ОС и приложений.
По умолчанию стоит значение 3. Для того, чтобы отключить службу, введите значение 0 и сделайте рестарт ПК.
Важно! Разработчики позаботились о том, чтобы папка Prefetch не накапливала файлы (и гигабайты места на диске), создав ограничение трассировочным файлам на 128 штук.
Играет ли папка Prefetch какую-то роль в оптимизации работы Windows и приложений
Тема оптимизации Windows представляется большинству пользователей весьма важной и, наверное, именно потому с ней связано так много мифов. В одном из этих мифов утверждается, что увеличить место на диске, а также ускорить работу системы и приложений можно, производя определённые манипуляции с папкой Prefetch. Давайте же разберёмся, действительно ли это так и для чего вообще нужна папка Prefetch.
В Windows каталог Prefetch играет ту же роль, что и кэш в браузерах. Чтобы система или приложения запускались быстрее, Windows автоматически сохраняет часть их кода в особые файлы трассировки. Когда пользователь запускает, к примеру, ресурсоёмкое приложение, система сначала обращается к содержимому папки Prefetch, считывает сохранённую и «часть» программы в память, в результате чего последняя запускается быстрее.
Что такое prefetch и почему его отключают?
Изначально служба prefetch разрабатывалась как отдельный компонент ОС Windows (начиная с ОС Windows XP) для ускорения запуска системы и приложений. Все это было в далеком 2001 году. Представляете конфигурацию компьютеров в те времена?
Теперь вернемся в наш 2020 год.
Проблема кэширования данных уже давно решена на аппаратном уровне и заложена в любой жесткий диск с магнитным накопителем. Где для кэширования данных есть собственная память, объем которой рассчитывается исходя из скорости вращения диска, чтобы соответсвовать максимальной пропускной способности для интерфейсов подключения (IDE, далее SATA и прочие).
Почему надо отключать эту службу?
Служба prefetch (в списке служб она называется prefetcher) наблюдает за запуском приложений и создает файлы трассировки оптимизации кода. Эта сложная структура кэша исполняемого кода, которая собирается ограниченное время (10 секунд после запуска) и подставляется в память при повторном запуске приложений. Отключают эту службу потому, что время потраченное на создание трассировки, намного больше, чем время и скорость считывания данных с современных жестких дисков. Тем более появились более быстрые SSD диски.
Microsoft в принудительном порядке отключает prefetch на собственных планшетах линейки Surface.
Так как, это обусловлено экономией места на накопителях и увеличением производительности системы! Почему Microsoft не дает возможность отключать самостоятельно prefetch — загадка, скорей всего это делается в маркетинговых целях.
Управление содержимым каталога Prefetch
Если уж кому-то не нужна эта служба, от нее можно избавиться. Для этого следует войти в редактор системного реестра (команда regedit в меню «Выполнить», вызываемом сочетанием Win + R).
Здесь нужно выбрать ветку HKLM, а затем через системный каталог (SYSTEM) и настройки текущих параметров контроля (CurrentControlSet) спуститься до раздела инспектирования памяти, где и находится искомый каталог PrefetchParameters. В нем содержатся ключи формата 0x0000000z, где «z» может принимать четыре варианта значений:
- 0 — полное отключение;
- 1 — ускорение только запуска программ;
- 2 — оптимизация только загрузки Windows;
- 3 — задействование функции в полном объеме (и для системы, и для приложений).
Те же настройки можно произвести и в редакторе групповых политик или в инструментарии администрирования компьютера.
Остается добавить, что каталог располагается в системном разделе по пути Windows/Prefetch. Что за папка и для чего она нужна, думается, уже понятно. Если дать небольшой совет напоследок, лучше не заниматься очисткой содержимого каталога или изменением параметров службы, установленных в системе по умолчанию.
Папку 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 штуками, чтобы они как раз не занимали слишком много места на диске.
В процессе изучения Windows 7, 8, 10, либо устранения возникших проблем, Вы столкнетесь с необходимостью знакомства с компонентами и предназначения папок ОС. В данном материале разберем такие вопросы: Prefetch — что за папка, можно ли удалить, и где она находится.
Предназначение папки
Ответим на вопрос: зачем нужна папка Prefetch? Windows при запуске анализирует программы, которыми мы часто пользуемся (открываем самостоятельно или с помощью автозагрузки). Затем система создает сведения об этих программах, которые хранит в специальных временных файлах в папке Prefetch. При последующем включении Windows эти файлы ускоряют загрузку ОС.
За выполнение этой работы отвечает компонент ОС . Если их удалить, никаких изменений не произойдет. При последующем запуске, Windows снова соберет актуальные данные о программах и поместит в папку Prefetch. При этом загрузка ОС может длиться немного дольше, чем обычно.
Впервые Prefetch использовали в Windows ХР. С появлением Windows Vista папка была дополнена технологиями SuperFetch (отвечает за анализ часто запускающихся приложений) и ReadyBoost (отвечает за увеличение быстродействия). Найти ее можно по такому пути: C:/Windows/Prefetch.
Preload, prefetch и другие теги
Есть много способов повышения веб-производительности. Один из них — предзагрузка контента, который понадобится позже. Префетчинг CSS, предварительный рендеринг полной страницы или резолвинг доменного имени. Делаем всё заранее, а потом мгновенно отображаем результат! Звучит круто. Ещё круче, что это очень просто реализовано. Пять тегов
дают браузеру команду на предварительные действия: Вкратце расскажем, что они делают и когда их использовать.
Перейти к: preload · prefetch · preconnect · dns-prefetch · prerender
говорит браузеру как можно скорее загрузить и кэшировать ресурс (например, скрипт или таблицу стилей). Это полезно, когда ресурс понадобится через несколько секунд после загрузки страницы — и вы хотите ускорить процесс.
Браузер ничего не делает с ресурсом после загрузки. Скрипты не выполняются, таблицы стилей не применяются. Ресурс просто кэшируется и немедленно предоставляется по запросу.
Синтаксис
href указывает на ресурс, который вы хотите скачать.
as может быть чем угодно, что можно скачать в браузере:
- style для таблиц стилей,
- script для скриптов,
- font для шрифтов,
- fetch для ресурсов, загруженных с помощью fetch() или XMLHttpRequest,
- полный список см. на MDN.
Важно указать атрибут as – это помогает браузеру правильно расставлять приоритеты и планировать загрузку.
Когда использовать
Используйте предзагрузку, когда ресурс понадобится в самое ближайшее время. Например:
- Нестандартные шрифты из внешнего файла: /* index.css */ @font-face < src: url(‘comic-sans.woff2’) format(‘woff2’); >По умолчанию comic-sans.woff2 начнёт загружаться только после загрузки и разбора index.css. Чтобы не ждать так долго, можно загрузить шрифт раньше с помощью :
- Если вы разделяете свои стили согласно подходу Critical CSS на две части, критическую (для немедленного рендеринга) и некритическую: /* Inlined critical styles */ /* Custom JS that starts downloading non-critical styles */ loadCSS(‘/app/non-critical.css’); При таком подходе некритические стили начнут загружаться только при запуске JavaScript, что может произойти через несколько секунд после рендеринга. Вместо ожидания JS используйте , чтобы начать загрузку раньше: /* Inlined critical styles */ /* Custom JS that starts downloading non-critical styles */ loadCSS(‘/app/non-critical.css’);
Не злоупотребляйте предзагрузкой
. Если загружать всё подряд, сайт не ускорится волшебным образом, скорее наоборот, это помешает браузеру грамотно планировать работу.
Не путайте с префетчингом
. Не используйте
, если вам не нужен ресурс сразу после загрузки страницы. Если он понадобится позже, например, для следующей страницы, то используйте .
Подробности
Это обязательный тег
для исполнения браузером (если он его поддерживает), в отличие от всех других тегов , связанных с предварительной загрузкой. Браузер обязан загрузить ресурс, указанный в . В других случаях он может проигнорировать предварительную загрузку, например, если работает на медленном соединении.
. Разным ресурсам (стили, скрипты, шрифты и т. д.), браузеры обычно назначают разные приоритеты, чтобы в первую очередь загружать самые важные ресурсы. В данном случае браузер определяет приоритет по атрибуту as. Для браузера Chrome можете посмотреть полную таблицу приоритетов.
просит браузер загрузить и кэшировать ресурс (например, скрипт или таблицу стилей) в фоновом режиме. Загрузка происходит с низким приоритетом, поэтому не мешает более важным ресурсам. Это полезно, если ресурс понадобится на следующей странице, а вы хотите заранее его кэшировать.
Здесь тоже браузер ничего не делает с ресурсом после загрузки. Скрипты не выполняются, таблицы стилей не применяются. Ресурс просто кэшируется и немедленно предоставляется по запросу.
Синтаксис
href указывает на ресурс, который вы хотите скачать.
as может быть чем угодно, что можно скачать в браузере:
- style для таблиц стилей,
- script для скриптов,
- font для шрифтов,
- fetch для ресурсов, загруженных с помощью fetch() или XMLHttpRequest,
- полный список см. на MDN.
Важно указать атрибут as — это помогает браузеру правильно расставлять приоритеты и планировать загрузку.
Когда использовать
Для загрузки ресурсов с других страниц
, если нужен ресурс с другой страницы, и вы хотите предварительно загрузить его, чтобы потом ускорить рендеринг этой страницы. Например:
- У вас интернет-магазин, и 40% пользователей уходят с главной страницы на страницу товара. Используйте , загружая файлы CSS и JS для рендеринга страниц с продуктом.
- У вас одностраничное приложение, а разные страницы загружают разные пакеты. Когда пользователь посещает какую-то страницу, можно предварительно загрузить пакеты для всех страниц, на которые она ссылается.
Вероятно, этот тег можно безопасно использовать в любом объёме
. Браузеры обычно планируют prefetch с наименьшим приоритетом, так что он никому не мешает. Только имейте в виду, что расходуется трафик пользователя, который может стоить денег.
Не для срочных запросов
. Не используйте
, когда ресурс понадобится через несколько секунд. В этом случае применяйте .
Подробности
Необязательный тег
. Браузер не обязан следовать этой инструкции, он может проигнорировать её, например, на медленном соединении.
Приоритет в Chrome
. В Chrome
обычно выполняется с минимальным приоритетом (см. полную таблицу приоритетов), то есть после загрузки всего остального. просит браузер заранее подключиться к домену, когда вы хотите ускорить установку соединения в будущем.
Браузер должен установить соединение, если извлекает какие-то ресурсы с нового стороннего домена. Например, если загружает шрифты Google Fonts, React из CDN или запрашивает ответ JSON с сервера API.
Установка нового соединения обычно занимает несколько сотен миллисекунд. Она производится один раз, но всё равно отнимает время. Если вы заранее установили соединение, то сэкономите время и быстрее загрузите ресурсы с этого домена.
Синтаксис
href указывает на доменное имя, для которого нужно определить IP-адрес. Можно указывать с префиксом (https://domain.com) или без него (//domain.com).
Когда использовать
Используйте для доменов, которые скоро понадобятся
для загрузки оттуда важного стиля, скрипта или изображения, но вы пока не знаете URL ресурса. Например:
- Ваше приложение размещается на my-app.com и делает AJAX-запросы к api.my-app.com: вы не знаете заранее конкретные запросы, потому что они делатся динамически из JS. Здесь вполне уместно использование тега для предварительного подключения к домену.
- Ваше приложение размещается на my-app.com и использует шрифты Google Fonts. Они загружаются в два этапа: сначала загружается файл CSS с домена fonts.googleapis.com, затем этот файл запрашивает шрифты с fonts.gstatic.com. Вы не можете знать, какие конкретные файлы шрифтов из fonts.gstatic.com вам понадобятся, пока не загрузите файл CSS, поэтому заранее мы можем только установить предварительное соединение.
Используйте этот тег, чтобы немного ускорить какой-то сторонний скрипт или стиль
за счёт предварительной установки соединения.
Не злоупотребляйте
. Установка и поддержание соединения — дорогостоящая операция как для клиента, так и для сервера. Используйте этот тег максимум для 4-6 доменов.
Подробности
Необязательный тег
. Браузер не обязан следовать этой инструкции и может проигнорировать её, например, если уже установлено много соединений или в каком-то другом случае.
Что включает в себя процесс подключения
. Для подключения к каждому сайту браузер должен выполнить следующие действия:
- Резолвинг DNS
. Найти IP-адрес сервера (216.58.215.78) для указанного доменного имени (google.com). - Рукопожатие TCP
. Обмен пакетами (клиент → сервер → клиент), чтобы инициировать TCP-соединение с сервером. - Рукопожатие TLS (только для сайтов HTTPS)
. Два раунда обмена пакетами (клиент → сервер → клиент → сервер → клиент), чтобы инициировать безопасный сеанс TLS.
Примечание: HTTP/3 улучшит и ускорит механизм рукопожатия, но он ещё далеко. просит браузер заранее выполнить резолвинг DNS для домена, если вы скоро будете подключаться к нему и хотите ускорить начальное соединение.
Браузер должен определить IP-адрес домена, если будет извлекать какие-то ресурсы с нового стороннего домена. Например, загружать шрифты Google Fonts, React из CDN или запрашивать ответ JSON с сервера API.
Для каждого нового домена разрешение записи DNS обычно занимает около 20−120 мс. Это влияет только на загрузку первого ресурса с данного домена, но всё равно представляет задержку. Если осуществить разрешение DNS заранее, то мы сэкономим время и загрузим ресурс быстрее.
Синтаксис
href указывает на доменное имя, для которого нужно установить IP-адрес. Можно указывать с префиксом (https://domain.com) или без него (//domain.com).
Когда использовать
Используйте для доменов, которые скоро понадобятся
для загрузки оттуда ресурсов, о которых браузер не знает заранее. Например:
- Ваше приложение размещается на my-app.com и делает AJAX-запросы к api.my-app.com: вы не знаете заранее конкретные запросы, потому что они делатся динамически из JS. Здесь вполне уместно использование тега для предварительного подключения к домену.
- Ваше приложение размещается на my-app.com, и использует шрифты Google Fonts. Они загружаются в два этапа: сначала загружается файл CSS с домена fonts.googleapis.com, затем этот файл запрашивает шрифты с fonts.gstatic.com. Вы не можете знать, какие конкретные файлы шрифтов из fonts.gstatic.com вам понадобится, пока не загрузите файл CSS, поэтому заранее мы можем только установить предварительное соединение.
Используйте этот тег, чтобы немного ускорить какой-то сторонний скрипт или стиль
за счёт предварительной установки соединения.
- Вы хотите поддерживать старые браузеры
. поддерживается начиная с IE10 и Safari 5. некоторое время поддерживался в Chrome и Firefox, но был добавлен в Safari только в 11.1 и по-прежнему не поддерживается в IE/Edge. Если нужно поддерживать эти браузеры, используйте в качестве запасного варианта для . - Вы хотите ускорить подключение более чем к 4−6 доменам
. Тег не рекомендуется использовать более чем с 4−6 доменами, так как установка и поддержание соединения — дорогостоящая операция. потребляет меньше ресурсов, поэтому в случае необходимости используйте его.
Подробности
Необязательный тег
. Браузер не обязан следовать этой инструкции, поэтому может не выполнять резолвинг DNS, например, если на странице много таких тегов или в каком-то другом случае.
Что такое DNS
. Каждому серверу в интернете соответствует уникальный IP-адрес, который выглядит как 216.58.215.78. В адресной строке браузера обычно вводится название сайта (например, google.com), а серверы DNS (Domain Name System) сопоставляют его с IP-адресом сервера (216.58.215.78).
Чтобы определить IP-адрес, браузер должен выполнить запрос к DNS-серверу. Он занимает 20−120 мс при подключении к новому стороннему домену.
DNS кэшируется, хотя и не очень надёжно
. Некоторые ОС и браузеры кэшируют DNS-запросы: это сэкономит время при повторных запросах, но на кэширование нельзя полагаться. В Linux оно обычно вообще не работает. У Chrome есть кэш DNS, но он живёт только минуту. Windows кэширует DNS-ответы в течение пяти дней.
просит браузер загрузить URL-адрес и отобразить его на невидимой вкладке. Когда пользователь нажимает на ссылку, страница должна отобразиться немедленно. Это полезно, если вы уверены, что пользователь посетит определённую страницу, и хотите ускорить её отображение.
Несмотря на исключительную эффективность этого тега (или из-за неё), в 2020 году
плохо поддерживается основными браузерах. Подробнее см. ниже.
Синтаксис
href указывает на URL, для который вы хотите запустить рендеринг в фоновом режиме.
Когда использовать
Когда вы действительно уверены, что пользователь перейдёт на определённую страницу
. Если у вас «туннель», по которому 70% посетителей страницы A переходят на страницу Б, то на странице А поможет очень быстро отобразить страницу Б.
Не злоупотребляйте
. Предварительный рендеринг чрезвычайно дорого обходится с точки зрения трафика и памяти. Не используйте
более чем для одной страницы.
Подробности
Необязательный тег
. Браузер не обязан следовать этой инструкции и может проигнорировать её, например, на медленном соединении или при недостаточном объёме свободной памяти.
Ради экономии памяти Chrome не выполняет полный рендеринг
, а только предзагрузку NoState. Это означает, что Chrome загружает страницу и все её ресурсы, но не делает рендеринг и не выполняет JavaScript.
Firefox и Safari вообще не поддерживают этот тег. Это не нарушает спецификацию, так как браузеры не обязаны выполнять данную инструкцию; но всё равно печально. Баг реализации в Firefox был открыт в течение семи лет. Есть сообщения, что Safari тоже не поддерживает этот тег.
Что за папка prefetch в windows xp. Prefetch: что это за папка и можно ли ее удалить
Знаете, я никогда не понимал назначение папки Temp в Windows. Я имею в виду, что не знаю, зачем она нужна и что делает. Например, если при установке программы произошел сбой, то в эту папку копируются некие файлы, которые впоследствии не нужны, их можно просто удалить, не причинив никакого вреда системе. Если произошел сбой в работе, то обязательно проверьте папку Temp, вы, наверняка, найдете в ней массу файлов, занимающих драгоценное место на вашем диске.
Папки Temp расположены в двух местах: C:\Windows\Temp и C:\Documents and Settings\Имя_пользователя\LocalSettings\Temp. По умолчанию папка Local Settings является скрытой, поэтому, чтобы увидеть эту папку, вам придется включить соответствующую опцию. Теперь перейдите в эти папки и удалите все содержимое.
Если вы прежде не открывали эти папки, то, вероятно, будете шокированы тем, что в них творится.
Что такое папка Prefetch
Папка Prefetch находится в системной папке Windows в ней содержится информация о часто открываемых программах для быстрого доступа к ним. Используется для ускорения загрузки операционной системы и запуска программ. При запуске компьютера Windows отслеживает процесс загрузки. После чего полученная информация сохраняется на жесткий диск в папке Prefetch. При следующем запуске эта информация применяется для ускорения загрузки операционной системы. Тоже самое происходит и при запуске любой программы.
Очистка папки Prefetch
Разработчики из Microsoft решили, что папки Temp занимают слишком маленький объем вашего дискового пространства, так почему бы не создать еще одну папку, выполняющую аналогичные действия? Большое спасибо! Нет, правда, спасибо.
Вероятно, у нас очень мало папок, которые просто съедают свободное дисковое пространство. Теперь, кроме папки Temp, у нас есть замечательная папка Prefetch. Функции этой папки отличаются от функций, выполняемых папкой Temp, однако, как и в папке Temp, в ней может веками храниться мусор, если вы не удалите его вручную. Поэтому советую периодически очищать эту папку (C:\Windows\Prefetch). И не волнуйтесь, система от этого не пострадает. Любые удаленные файлы, которые необходимы Windows, будут автоматически воссозданы.
Теперь об еще одной полезной функции, имя ей 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
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. Что за папка перед юзером в данном случае, знают далеко не все. Попробуем восполнить пробелы в знаниях насчет того, для чего нужен этот каталог и какие данные он содержит.
Отключение Superfetch и Prefetch для SSD в Windows 7.
В этой статье мы рассмотрим, как можно отключить Prefetch и SuperFetch в Windows 8 и Windows 7 на твердотельных накопителях. В этой статье мы видели, как Windows 8 относится к Дефрагментации на твёрдотельных накопителях.Прежде чем мы начнем , позвольте мне ясно объяснить,что это не очень хорошая идея, чтобы отключить SuperFetch или Prefetch в режиме обычного жесткого диска,но для твердотельных накопителей , это совсем другое дело!
SuperFetch , Prefech и SSD в Windows 8
Каждый раз,когда вы запускаете какое нибудь приложение на компьютере,создаётся файл Prefetch который содержит информацию о файлах,он загружается приложением и специально создаётся операционной системой Windows.Вся информация которую содержит файл Prefetch в основном используется для оптимизации времени загрузки приложения в следующий раз, когда вы запускаете это приложение.SuperFetch пытается предсказать,какие приложения вы будете запускать в следующий раз и предварительно загружает все необходимые данные в память.Алгоритм его прогнозирования превосходящий и может предсказать,какие ближайшие 3 приложения вы запустите и к какому времени.Если короче,то SuperFetch и Prefetch являются управленческой технологией Windows Storage,которые обеспечивают быстрый доступ к данным на традиционных жестких дисках.На твердотельных накопителях они приводят к ненужным операциям записи.
Поэтому в Windows 7 и Windows 8 ,по умолчанию автоматически отключены SuperFetch и Prefetch ,как только он обнаруживает SSD в вашей системе. Отключение Superfetch
Служба SysMain является той,которая связана с Superfetch.Её работа состоит в том,чтобы поддерживать и улучшить производительность системы в течение долгого времени.Она находится в папке System32 . Их почему то нужно вручную отключать,это руководство,как можно отключить SuperFetch.Запустите services.msc,чтобы открыть диспетчер служб.Прокрутите вниз,чтобы найти службы SuperFetch , которая отвечает за поддержание и улучшение производительности системы с течением времени.Дважды щелкните на ней,чтобы открыть окно Свойства. Нажмите на Stop , чтобы остановить процесс.Сделайте тип запуска Отключено и нажмите на кнопку Применить .

Чтобы изменения системы вступили в силу,Вам придется перезагрузить компьютер. Отключить Prefetch Чтобы отключить Prefetch в Windows, запустите Regedit, чтобы открыть редактор реестра. Перейдите в следующий раздел реестра:
HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Memory Management \ PrefetchParameters

В правой части дважды щелкните на EnablePrefetcher, чтобы открыть окно его параметра DWORD.
Возможные значения для EnablePrefetcher являются:
0 — Отключить Prefetcher 1 — Запуск приложения включен Предварительная загрузка 2 -Включен загрузки Предварительная загрузка 3-Запуск приложения и загрузки Предварительная загрузка включен
Значение по умолчанию 3. Чтобы отключить Prefetch, установите его значение в 0. Нажмите кнопку ОК и Выход.Кстати,здесь вы также можете отключить или настроить Suoerfetcher — вы увидите EnableSuperfetcher DWORD чуть ниже его.
Возможные значения для EnableSuperfetch являются:
0 -Отключить Superfetch 1 -Включить SuperFetch для загрузочных файлов только 2 -Включить SuperFetch только для приложений 3-Включить SuperFetch для обоих загрузочных файлов и приложений
Если вы являетесь обладателем твердотельного накопителя и пользуетесь State Drive, вы можете прочитать о бесплатной утилите SSD Life, которая может проверить здоровье вашего твердотельного накопителя и SSD Tweaker,который поможет вам настроить ваш твердотельный накопитель.
- Автор: Данил
- Распечатать
- 5
- 4
- 3
- 2
- 1
(9 голосов, среднее: 4.6 из 5)
Поделитесь с друзьями!
Prefetch: что за папка
Рассмотрение вопроса начнем с подачи теоретического материала. При старте операционная система отслеживает процесс загрузки, сохраняя о нем все данные для ускорения последующего запуска в каталоге Prefetch. Что за папка перед нами?
По сути, на жестком диске компьютера, содержащая актуальные данные, параметры и компоненты полного цикла загрузки системы и запуска наиболее часто используемых программ.
Чтобы в следующий раз не загружать все компоненты с нуля, Windows и использует данные, сохраненные на винчестере. Некоторые юзеры, правда, утверждают, что для каждого последующего запуска системы информация, хранящаяся в каталоге Prefetch, становится устаревшей. Поэтому, с их точки зрения, время от времени нужно очищать директорию Prefetch. Что за папка Prefetch, немного понятно. А вот далеко не все любители очистки знают, что данные в ней перезаписываются автоматически после каждого старта или запуска приложения.
Посмотрим на практические стороны вопроса об удалении ее содержимого. Чуть позже будет сказано о том, как отключить использование функции ускорения загрузки, если это кому-то уж слишком сильно мешает.
Что такое prefetch и почему его отключают?
Изначально служба prefetch разрабатывалась как отдельный компонент ОС Windows (начиная с ОС Windows XP) для ускорения запуска системы и приложений. Все это было в далеком 2001 году. Представляете конфигурацию компьютеров в те времена?

Теперь вернемся в наш 2020 год.
Проблема кэширования данных уже давно решена на аппаратном уровне и заложена в любой жесткий диск с магнитным накопителем. Где для кэширования данных есть собственная память, объем которой рассчитывается исходя из скорости вращения диска, чтобы соответсвовать максимальной пропускной способности для интерфейсов подключения (IDE, далее SATA и прочие).
Почему надо отключать эту службу?
Служба prefetch (в списке служб она называется prefetcher) наблюдает за запуском приложений и создает файлы трассировки оптимизации кода. Эта сложная структура кэша исполняемого кода, которая собирается ограниченное время (10 секунд после запуска) и подставляется в память при повторном запуске приложений. Отключают эту службу потому, что время потраченное на создание трассировки, намного больше, чем время и скорость считывания данных с современных жестких дисков. Тем более появились более быстрые SSD диски.
Microsoft в принудительном порядке отключает prefetch на собственных планшетах линейки Surface.
Так как, это обусловлено экономией места на накопителях и увеличением производительности системы! Почему Microsoft не дает возможность отключать самостоятельно prefetch – загадка, скорей всего это делается в маркетинговых целях.
Некоторые пользователи, любящие порыться в системных каталогах, зачастую сталкиваются с директорией Prefetch. Что за папка перед юзером в данном случае, знают далеко не все. Попробуем восполнить пробелы в знаниях насчет того, для чего нужен этот каталог и какие данные он содержит.
Папка Prefetch в Windows 7 и выше: стоит ли ее очищать
Удаление данных из этого каталога никаких критических изменений в работе системы или установленных программ не вызовет.
Но вот абсолютно неправы все те, кто утверждает, что после удаления информации из этого каталога загрузка системы и запуск приложений станет быстрее. Как раз наоборот, ведь системе или программе придется заново запускать собственные модули, помещая их в оперативную или компьютерного устройства, а это занимает время. Использование данных директории Prefetch затрачиваемое на эти процессы время сокращает существенно. Поэтому очисткой по большому счету заниматься нежелательно, тем более — удалять саму папку.
Тут важно понимать, что при последующих загрузках данные о процессе все равно будут сохранены. Так что очистка и удаление окажутся тем, что принято называть «сизифов труд».
Мифы [ править | править код ]
Существует несколько распространенных мифов
- Добавление ключа «/prefetch:1» в строку запуска приложения ускоряет его загрузку.
Этот миф основывается на том факте, что после установки операционной системы в строке запуска Windows Media Player изначально указан ключ «/prefetch:1». В реальности добавление этого ключа само по себе не дает никакого эффекта, а в некоторых случаях приложение может отказаться запускаться совсем [4] . - Удаление файлов из папки %SystemRoot%Prefetch ускоряет работу компьютера.
Этот миф основывается на предположении, что в папке %SystemRoot%Prefetch скапливается слишком много файлов, поэтому Prefetcher начинает «тормозить» систему. В реальности очистка вышеуказанной папки приводит к замедлению работы компьютера до тех пор, пока трассировочные данные не будут снова накоплены [4] . - Со временем папка %SystemRoot%Prefetch начинает занимать много места на диске.
В целях экономии дискового пространства максимальное количество трассировочных файлов ограничено 128 [4] . Очистка папки %SystemRoot%Prefetch не требуется, так как Prefetcher обслуживает себя автоматически без участия со стороны пользователя [2] .
Управление содержимым каталога Prefetch
Если уж кому-то не нужна эта служба, от нее можно избавиться. Для этого следует войти в редактор системного реестра (команда regedit в меню «Выполнить», вызываемом сочетанием Win + R).
Здесь нужно выбрать ветку HKLM, а затем через системный каталог (SYSTEM) и настройки текущих параметров контроля (CurrentControlSet) спуститься до раздела инспектирования памяти, где и находится искомый каталог PrefetchParameters. В нем содержатся ключи формата 0x0000000z, где «z» может принимать четыре варианта значений:
- 0 — полное отключение;
- 1 — ускорение только запуска программ;
- 2 — оптимизация только загрузки Windows;
- 3 — задействование функции в полном объеме (и для системы, и для приложений).
Те же настройки можно произвести и в редакторе групповых политик или в инструментарии администрирования компьютера.
Остается добавить, что каталог располагается в системном разделе по пути Windows/Prefetch. Что за папка и для чего она нужна, думается, уже понятно. Если дать небольшой совет напоследок, лучше не заниматься очисткой содержимого каталога или изменением параметров службы, установленных в системе по умолчанию.
В процессе изучения Windows 7, 8, 10, либо устранения возникших проблем, Вы столкнетесь с необходимостью знакомства с компонентами и предназначения папок ОС. В данном материале разберем такие вопросы: Prefetch — что за папка, можно ли удалить, и где она находится.
Расположение и функции папки Prefetch
Каждый раз, когда Вы включаете компьютер, Windows отслеживает, как запускается Ваш ПК, и какие программы Вы часто открываете. Windows сохраняет эту информацию в виде небольших файлов в папке Prefetch. При следующем включении компьютера ОС ссылается на эти файлы, чтобы ускорить процесс запуска.
Папка Prefetch находится в каталоге ОС, полное расположение выглядит так:
C:\Windows\Prefetch. В вашем конкретном случае метка тома может отличаться.
Перейдя в папку, Вы увидите каталог ReadyBoot и файлы в основном с расширением pf. Например, загрузка ОС трассируется в файл с названием NTOSBOOT-B00DFAAD.pf. Все остальные элементы являются трассировками запуска программ и служебных компонентов. Файлы имеют в названии имя исполняемого файла, его шестнадцатеричного хеша пути и расширение, например, EXCEL.EXE-53A22446.pf.
Работу по формированию файлов трассировки выполняет компонент Prefetcher, но без функционирующего планировщика заданий Prefetcher будет работать неправильно. Данные поступившие от Prefetcher обрабатываются планировщиком заданий и далее записываются в папку Prefetch.
Также стоит обратить внимание на файл Layout.ini. Он создается каждые 3 дня и хранит в себе данные (перечень файлов и папок), которые используются при запуске системы и программ. Данные из Layout.ini использует утилита дефрагментации диска для рационального размещения файлов на жестком диске.
Как использовать preload, prefetch и preconnect для ускорения сайта
- 143shares
- 73
- 24
- 2
- 25
- 2

Рассмотрим ресурсные подсказки и директивы
(Resource Hints). Эти инструменты ускоряют веб-сайты и веб-приложения. Разберем различия между подсказками
preload, prefetch
и
preconnect
. Это поможет успешно их использовать. Вот некоторые их преимущества:
1) оптимизируют доставку ресурсов; 2) сокращают количество сетевых задержек; 3) доставляют контент быстрее,— в то время, пока пользователь смотрит страницу.
По поводу этих подсказок см. также статью «Предсказывающие страницы: Использование dns-prefetch, preconnect, prefetch, preload и prerender для повышения производительности страницы» на Хабрахабре.
Директива preload
Директива preload — это новый веб-стандарт, который хорошо управляет выбором конкретных ресурсов для текущей навигации. Preload — обновленная версия подресурса prefetch, раскритикованного в январе 2020. Эта директива может быть определена в элементе
, например, . Как правило, лучше предварительно загружать самые важные ресурсы, такие как изображения, CSS, JavaScript и файлы шрифтов.
Не путайте директиву preload с предварительной загрузкой браузером только тех ресурсов, которые объявлены в HTML. Директива preload преодолевает это ограничение. Preload позволяет предварительно загрузить ресурсы, инициированные CSS и JavaScript, а также описать, когда нужно использовать каждый ресурс.
Чем же preload отличается от prefetch? Preload работает с текущей навигацией и ресурсами с высоким приоритетом
. Prefetch — ресурсы с
низким приоритетом
для
следующей навигации
. Отметим, что preload не блокирует window-событие onload.
На рисунке 1 показан пример использования директивы preload для загрузки ресурсов JavaScript.

Рис. 1. Пример использования директивы Preload для загрузки ресурсов JavaScript
1.1. Преимущество директивы preload
Вот некоторые преимущества директивы preload:
- Позволяет браузеру устанавливать приоритет ресурса
, что, в свою очередь, позволяет веб-разработчикам оптимизировать доставку ресурсов. - Позволяет браузеру выяснить тип ресурса
, что, в свою очередь, позволяет узнать, можно ли тот же самый ресурс снова использовать в дальнейшем. - Позволяет браузеру выяснить, совместим ли запрос
с политикой безопасности контента в соответствии с атрибутом as. - Позволяет браузеру послать подходящие заголовки accept, основанных на типе ресурсов (такие как image/webp).
1.2. Примеры
Вот очень простой пример предварительной загрузки изображения.
Ниже пример предварительной загрузки шрифтов.
Замечание.
При предварительной загрузке связей с разрешенными CORS-ресурсами необходим атрибут crossorigin.
Наконец, пример предварительной загрузки таблицы стилей, используя HTML разметку и JavaScript.
var res = document.createElement(«link»); res.rel = «preload»; res.as = «style»; res.href = «css/mystyles.css»; appendChild(res);
1.3. Браузерная поддержка preload
Поддержка директивы preload была добавлена к браузеру Chrome 50 в апреле 2020, а также поддерживается браузером Opera 37 и выше. Поддержка директивы preload пока еще не реализована для браузера Mozilla Firefox, а ее появление в браузере Microsoft Edge вероятно (на 9 января 2017).
На рисунке 2 показаны последние версии наиболее распространенных браузеров с указанием поддержки директивы preload (на 9 января 2017). Последнее состояние см. на этой странице

Рис. 2. Последние версии наиболее распространенных браузеров с указанием поддержки директивы preload. Зеленый цвет означает поддержку, красный — ее отсутствие, серый цвет означает вероятное появление (на 9 января 2017)
Prefetch
Prefetch — это низкоприоритетная ресурсная подсказка, позволяющая браузеру выбирать в фоновом режиме
(в свободное время) те ресурсы, которые могут пригодиться позже, и
сохранять их в кэше браузера
. Как только страница закончит загружаться, prefetch загружает некоторые дополнительные ресурсы. Когда пользователь жмет на prefetch-ссылку, prefetch немедленно загружает контекст. Имеется три различных типа prefetch, рассмотренные далее:
1) ссылочный; 2) DNS; 3) prerendering.
На рисунке 3 показаны четыре шага выполнения ссылочного prefetch.
Шаг 1 (Step 1)
. Загрузка сайта example.com (Load https://example.com). На изображении экрана надпись: ожидание загрузки example.com (Waiting for https://example.com).
Шаг 2 (Step 2)
. Браузер находит prefetch-ссылки (Browser finds prefetch links).
Шаг 3 (Step 3)
. Браузер выбирает затребованный контент, чтобы показать на экране prefetch-страницы. Одновременно с этим контент сохраняется в кэше, пока пользователь щелкает по ссылке. Внизу изображен кэш браузера.

Рис. 3. Четыре шага выполнения ссылочного prefetch
2.1. Ссылочный prefetch
Как сказано выше, ссылочный prefetch позволяет браузеру выбрать ресурсы и сохранить их в кэше
,
предполагая
, что потом пользователь их запросит. Браузер ищет prefetch в HTML в теге
или в его заголовке Link:
- HTML:
- HTTP Header: Link: ; rel=prefetch
Замечание.
«Эта техника ускорит многие интерактивные сайты, но не будет работать всегда и везде по следующим причинам:
1. Для некоторых сайтов трудно угадать, что пользователь собирается делать. 2. Для других сайтов сохраненные в кэше данные устаревают, если пользователь быстро выбирает новые. 3. Опасно постоянно сохранять файлы в кэше — просмотр текущей страницы замедлится».
Google Developers.
Более подробно см. Prefetching resources, Google Developers
Ссылочный prefetch поддержан большинством современных браузеров, за исключением Safari, Safari iOS и Opera Mini. Chrome и Firefox, кроме того, покажут prefetch-ресурсы на сетевой панели (на 9 января 2017).
На рисунке 4 показаны последние версии наиболее распространенных браузеров с указанием поддержки директивы ссылочного prefetch (на 9 января 2017). Последнее состояние см. на этой странице

Рис. 4. Последние версии наиболее распространенных браузеров с указанием поддержки директивы prefetch. Зеленый цвет означает поддержку, красный — ее отсутствие (на 9 января 2017)
2.2. DNS prefetch
DNS prefetch позволяет браузеру выполнять поиск DNS на странице в фоновом режиме
, в то время как пользователь просматривает сайт. Это минимизирует время ожидания, поскольку поиск DNS уже состоялся, когда пользователь щелкнет по ссылке.
DNS prefetch входит в URL как атрибут тега link: rel=»prefetch». Используется для шрифтов Google, Google Analytics и CDN.
«DNS-запросы быстры в смысле пропускной способности, но время ожидания может быть велико, особенно в мобильных сетях. Теоретически DNS prefetch может значительно уменьшить время ожидания в определенные моменты, например, когда пользователь щелкает по ссылке. Иногда время ожидания можно уменьшить на целую секунду.»
Mozilla Developer Network.
Более подробно см. X-DNS-Prefetch-Control, Mozilla Developer Network
Это также используется при распределении ресурсов. Вот пример:
Отметим, что Google Chrome поступает аналогично, когда в адресной строке набирается текст, используя DNS presolve и TCP preconnect. Что довольно круто! На chrome://dns/ виден список используемых prefetch-сайтов, пример которого показан на рисунке 5.
По поводу DNS presolve см. статью «Особенности резолвера DNS в Windows 10 и DNS Leak» на Хабрахабре

Рис. 5. DNS prefetch 10 хостов для будущих загрузок. Первый столбец Имя хоста
, второй —
Как давно (чч:мм:сс)
, третий —
Источник
Также можно использовать Pagespeed-фильтр insert_dns_prefetch, который помещает теги
в заголовок страницы автоматически для всех доменов или специализированные сервисы, такие как Айри.рф.
По поводу Pagespeed-фильтра см. краткую статью «Пакет программ Page Speed от Google» на Хабрахабре
DNS prefetch также поддержан большинством современных браузеров, за исключением Opera Mini (на 9 января 2017).
На рисунке 6 показаны последние версии наиболее распространенных браузеров с указанием поддержки директивы DNS prefetch (на 9 января 2017). Последнее состояние см. на этой странице

Рис. 6. Последние версии наиболее распространенных браузеров с указанием поддержки директивы DNS prefetch. Зеленый цвет означает поддержку, красный — ее отсутствие, серый цвет означает вероятное появление, салатовый — промежуточный вариант (на 9 января 2017)
2.3. Prerender
Prerender очень похож на prefetch тем, что тоже собирает ресурсы, на которые может попасть пользователь. Различие в том, что prerender принимает в фоновом режиме всю страницу
, все содержание документа. Вот пример.
«Подсказка prerender используется приложением для указания следующей вероятной цели HTML-навигации. При этом пользовательский агент выберет и обработает указанный ресурс как HTML-ответ. А вот для того, чтобы выбрать другой тип контента, или же когда предварительная обработка HTML нежелательна, приложение использует другую подсказку — prefetch.»
W3C
Более подробно см. Resource Hints, W3C
Например, prerender — это инструмент браузера Chrome, улучшающий время загрузки страниц сайта. На рисунке 7 схематически показано, как prerender запускается тегами
на указанных страницах. Скрытая страница создана для prerender URL, который будет полностью загружать все связанные ресурсы и выполнять JavaScript. Если пользователь откроет эту страницу, скрытая страница будет обменена на текущую и сделана видимой.
. 2. Заблаговременное создание невидимых страниц. 3. Загрузка пользователем другой страницы, включающей выполнение JavaScript. 4. После выбора пользователем новой страницы обмен текущей страницы на скрытую. 5. Удаление скрытых страниц через небольшой промежуток.
По поводу prefetch и prerender см. также статью «Улучшение субъективной скорости работы сайта при помощи подсказок браузеру» на Хабрахабре

Рис. 7. Схематически показано, как prerender запускается тегом
Эта схема взята с сайта The Chromium Projects
Нужна осторожность с prerender, это — тяжелый ресурс, и его использование может вызвать падение пропускной способности, особенно на мобильных устройствах.
Отметим, что нельзя проверить наличие prerender с помощью Chrome DevTools. Наличие prerender на странице сайта можно посмотреть по адресу chrome://net-internals/#prerender. Кроме того, на prerender-test.appspot.com можно проверить на наличие prerender любую страницу сайта, указав ее адрес.
На рисунке 8 показан пример проверки наличия prerender с помощью chrome://net-internals/#prerender

Рис. 8. Пример проверки наличия prerender с помощью chrome://net-internals/#prerender
Prerender поддерживается некоторыми браузерами за исключением Mozilla Firefox, Safari, iOS Safari, Opera Mini и браузера Android (на 9 января 2017).
На рисунке 9 показаны последние версии наиболее распространенных браузеров с указанием поддержки директивы prerender (на 9 января 2017). Последнее состояние см. на этой странице

Рис. 9. Последние версии наиболее распространенных браузеров с указанием поддержки директивы prerender. Зеленый цвет означает поддержку, красный — ее отсутствие (на 9 января 2017)
Prefetch имеет некоторые недостатки, например, проблемы с секретностью.
- Веб-статистика регистрации prefetch может несанкционированно расти, хотя Google и заявляет, что лишнее использование тега подавляется. Пример такой веб-аналитики, когда теги, возможно, и подавляются, но при этом регистрируются две сессии prefetch за один щелчок, находится на английском блоге по этому адресу
- Пользователи в принципе могут подвергнуться угрозам безопасности, загрузив больше страниц с незапрошенных сайтов (дополнительно включенных в запросы, поскольку загрузка стала более продвинутой и разнообразной).
- Пользователи могут неосознанно нарушить политику секретности своей сети или сети организации, если prefetch становится доступен несанкционированный в сетях контент.
Preconnect
Наконец, рассмотрим preconnect. Preconnect позволяет браузеру установить соединение прежде, чем HTTP-запрос будет отправлен на сервер
. Эта процедура включает поиски DNS, «переговоры» TLS и «рукопожатие» TCP. Что в свою очередь устраняет круговые задержки и экономит время пользователя.
«Preconnect — важный инструмент оптимизации… он устраняет дорогостоящие круговые задержки из пути запроса. Иногда время ожидания запроса сокращается на сотни и даже тысячи миллисекунд».
Илья Григорик (англ. Ilya Grigorik).
Более подробно см. статью Ильи Григорика «Eliminating Roundtrips with Preconnect»
На рисунке 10 сравнивается время загрузки DNS/TCP/TLS с использованием preconnect и без него. В верхней части рисунка приведено время загрузки без использования preconnect, равное 2,6 с. Внизу — с использованием preconnect, время загрузки равно 2,1 с.

Рис. 10. Сравнение времени загрузки DNS/TCP/TLS с использованием preconnect и без него
Preconnect добавляется непосредственно к тегу link как атрибут HTML. А также в заголовок Link HTTP, и еще пользователем с помощью JavaScript. Вот пример возможного использования preconnect для URL CDN.
На рисунке 11 приведен пример использования preconnect со шрифтами Google. Добавление подсказки preconnect для сайта fonts.gstatic.com начинается с запроса шрифта параллельно с CSS-запросом. Что позволяет немедленно послать запрос шрифта.
В этом конкретном сценарии preconnect удаляет три круговые задержки
из критического пути и
сокращает времени ожидания больше чем на полсекунды
.
Более подробно см. статью Ильи Григорика «Eliminating Roundtrips with Preconnect»

Рис. 11. Пример использования preconnect со шрифтами Google
Эффективное и продуманное использование preconnect не только поможет оптимизировать веб-сайт, но также защитит от недостаточного использования ресурсов. Preconnect поддерживается некоторыми современными браузерами за исключением Internet Explorer, Safari, iOS Safari и Opera Mini (на 9 января 2017).
На рисунке 12 показаны последние версии наиболее распространенных браузеров с указанием поддержки директивы preconnect (на 9 января 2017). Последнее состояние см. на этой странице

Рис. 12. Последние версии наиболее распространенных браузеров с указанием поддержки директивы preconnect. Зеленый цвет означает поддержку, красный — ее отсутствие, серый цвет означает вероятное появление (на 9 января 2017)
Итоги
Возможно, теперь понимание того, что есть preload, prefetch и preconnect, стало немного лучше. А также стратегии их использования для ускорения доставки контента. Будет приятно, если использование директивы preload возрастет в ближайшие месяцы, а веб-разработчики примут ее на вооружение.
- 143shares
- 73
- 24
- 2
- 25
- 2
Мифы про удаление содержимого папки Prefetch
Часто утверждается, что удаление папки Prefetch приводит к меньшему времени загрузки и большей свободной памяти. Некоторые эксперты считают, что Windows загружает информацию из папки Prefetch для всех программ, которые когда-нибудь запускались на ПК, в , тем самым заполняя ее неиспользуемыми данными (это неверно). Эти эксперты рекомендуют удалять на регулярной основе содержимое папки Prefetch, чтобы сохранить память от неиспользуемых данных.
Папка Prefetch является самообслуживающейся, нет необходимости удалять или очищать ее содержимое. Windows поддерживает определенное число записей в Prefetch и очищает автоматически излишние данные, предотвращая увеличение объемов папки. Если Вы опустошите содержимое папки вручную, тогда Windows и программы займут больше времени для запуска при следующем включении компьютера. Удаленные данные будут воссоздаваться, что приведет к длительному времени загрузки. Удалять папку Prefetch или ее содержимое с точки зрения освобождения памяти на жестком диске бессмысленно, тат как она весит мало. В нашем случае это около 40 мб.