Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Prefetcher является компонентом Microsoft Windows , которая была введена в Windows XP . [1] Это компонент диспетчера памяти, который может ускорить процесс загрузки Windows и сократить время, необходимое для запуска программ. Это достигается путем кэширования файлов, которые необходимы приложению, в ОЗУ при запуске приложения, таким образом консолидируя чтение с диска и уменьшая количество обращений к диску. Эта функция защищена патентом США 6,633,968. [2] [3]

Начиная с Windows Vista , Prefetcher был расширен за счет SuperFetch и ReadyBoost . SuperFetch пытается ускорить время запуска приложений, отслеживая и адаптируясь к шаблонам использования приложений в течение определенных периодов времени, а также заранее кэшируя большинство файлов и данных, которые им необходимы, в памяти, чтобы к ним можно было получить доступ очень быстро, когда это необходимо. ReadyBoost (если он включен) использует внешнюю память, например USB-накопитель, для расширения системного кеша за пределы ОЗУ, установленного на компьютере. ReadyBoost также имеет компонент под названием ReadyBoot, который заменяет Prefetcher для процесса загрузки, если в системе 700 МБ или более ОЗУ. [4]

Обзор [ править ]

Когда система Windows загружается, компоненты многих файлов должны быть считаны в память и обработаны. Часто разные части одного и того же файла (например, кусты реестра) загружаются в разное время. В результате значительное количество времени тратится на «прыжки» от файла к файлу и обратно несколько раз, даже если единичный доступ был бы более эффективным. Программа предварительной выборки работает, отслеживая, к каким данным осуществляется доступ во время процесса загрузки (включая данные, считанные из таблицы основных файлов NTFS ), и записывая файл трассировки этой активности. Программа предварительной загрузки будет продолжать отслеживать такую ​​активность до 30 секунд после запуска оболочки пользователя, или до 60 секунд после завершения инициализации всех служб, или до 120 секунд после загрузки системы, в зависимости от того, что наступит раньше.

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

Предварительная выборка приложений работает аналогичным образом, но вместо этого локализована для запуска одного приложения. Контролируются только первые 10 секунд активности. [1] : 458

Программа предварительной выборки хранит свои файлы трассировки в папке «Prefetch» ​​внутри папки Windows (обычно C:\Windows\Prefetch). Имя файла трассировки загрузки всегда NTOSBOOT-B00DFAAD.PF, а файлы трассировки приложения представляют собой конкатенацию имени исполняемого файла приложения, дефиса, шестнадцатеричного представления хэша пути, в котором находится файл, и расширения «.pf». Приложения, в которых размещены другие компоненты (например, Microsoft Management Console или Dllhost), также имеют имя загруженного компонента, включенное в вычисляемый хэш; в результате для каждого компонента создаются разные файлы трассировки.

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

Чтобы еще больше сократить время доступа, планировщик задач вызывает дефрагментацию диска Windows каждые три дня. Когда машина простаивает, обрабатываются списки файлов и каталогов, на которые ссылались во время процесса загрузки и запуска приложений. [1] : 461–462 Обработанный результат сохраняется Layout.iniв каталоге предварительной выборки и впоследствии передается программе дефрагментации диска, давая указание переупорядочить эти файлы в последовательные позиции на физическом жестком диске.

Это еще больше повысит производительность за счет минимизации расстояния, на которое головки жесткого диска необходимо перемещать от одного файла к другому.

Это изменение порядка можно запустить (запустив «Defrag.exe% systemdrive% -b» из командной строки) без выполнения полной дефрагментации. [ необходима цитата ]

Если система установлена ​​на твердотельный накопитель , Superfetch отключен, но обычная предварительная выборка остается включенной. [ необходима цитата ]

Конфигурация [ править ]

Конфигурация Prefetcher хранится в реестре Windows по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters. Значение EnablePrefetcher может быть одним из следующих: [5]

  • 0 = отключено
  • 1 = предварительная загрузка приложений включена
  • 2 = предварительная загрузка при загрузке включена (по умолчанию только в Windows Server 2003). [6]
  • 3 = предварительная загрузка приложений и загрузки включена (по умолчанию). [5]

Рекомендуемое значение - 3 . [5] Значения выше 3 не увеличивают производительность, а изменение значения на 2 не ускоряет загрузку Windows. [5]

Неправильная настройка предварительной выборки [ править ]

Часто в Интернете [7] можно найти настройку приложения «/ prefetch: 1» [8], которая является допустимым, но неправильно понятым переключателем. Он используется для различения различных режимов работы исполняемого файла в случае, если эти разные режимы будут иметь существенно разные трассировки предварительной выборки. [9]

Второй миф заключается в том, что пользователь должен удалить содержимое папки предварительной загрузки, чтобы ускорить работу компьютера. Если это будет сделано, Windows потребуется заново воссоздать все файлы предварительной выборки, тем самым замедляя Windows во время загрузки и запуска программы до тех пор, пока не будут созданы файлы предварительной выборки - если только предварительная выборка не отключена. [10] [11] [12] Windows хранит файлы предварительной выборки в папке предварительной выборки для 128 последних запущенных программ. [13]

См. Также [ править ]

  • Windows ReadyBoost
  • Технологии ввода-вывода Windows Vista
  • Список компонентов Microsoft Windows
  • Новые возможности Windows XP
  • readahead - эквивалентная технология Linux
  • Предварительная загрузка ссылок - аналог для веб-сайтов
  • Предварительная выборка из кеша

Ссылки [ править ]

  1. ^ a b c Руссинович, Марк ; Дэвид Соломон (2005). "Управление памятью". Внутренние компоненты Microsoft Windows (4-е изд.). Microsoft Press. С.  458–462 . ISBN 0-7356-1917-4. CS1 maint: обескураженный параметр ( ссылка )
  2. ^ Патент США 6,633,968
  3. ^ "Архивная копия" . Архивировано из оригинала на 2008-05-16 . Проверено 23 февраля 2008 .CS1 maint: заархивированная копия как заголовок ( ссылка )
  4. ^ Внутри ядра Windows Vista
  5. ^ а б в г http://home.comcast.net/~SupportCD/XPMyths.html#Optimization
  6. ^ http://www.microsoft.com/whdc/archive/XP_kernel.mspx
  7. ^ «Дезинформация и флаг предварительной выборки» . Забавно, это сработало в прошлый раз . Блоги MSDN. 25 мая 2005 . Проверено 9 декабря 2008 . [...] это появилось на очень многих , многих , многих сайтах, чтобы стать городской легендой. CS1 maint: обескураженный параметр ( ссылка )
  8. ^ «Дезинформация и флаг предварительной выборки» . Забавно, это сработало в прошлый раз . Блоги MSDN. 25 мая 2005 . Проверено 9 декабря 2008 . Во-вторых, можно указать / prefetch: #flag при запуске приложения. [...] Некоторые сайты догадались, что этот переключатель включает предварительную выборку, и предлагают добавить это в каждый исполняемый файл, который вам нужен [...] CS1 maint: обескураженный параметр ( ссылка )
  9. ^ «Дезинформация и флаг предварительной выборки» . Забавно, это сработало в прошлый раз . Блоги MSDN. 25 мая 2005 . Проверено 9 декабря 2008 . Оба предположения неверны . Флаг / prefetch: # рассматривается ОС, когда мы создаем процесс, однако он имеет одну (и только одну) цель. Добавляем переданное число в хеш. Почему? [~ snip ~] CS1 maint: обескураженный параметр ( ссылка )
  10. ^ Gralla, Престон (2007). Большая книга Windows-хаков . "O'Reilly Media, Inc.". ISBN 978-0-596-52835-5.
  11. ^ «Остерегайтесь советов по подделке XP» .
  12. ^ «Windows XP: улучшения ядра создают более надежную, мощную и масштабируемую ОС» . Архивировано из оригинала на 2008-05-16 . Проверено 23 февраля 2008 .
  13. ^ «Дезинформация и флаг предварительной выборки» . Забавно, это сработало в прошлый раз . Блоги MSDN. 25 мая 2005 . Проверено 9 декабря 2008 . Во-первых, XP все равно просто воссоздает эти данные заново; во-вторых, он все равно обрезает файлы, если их больше 128, чтобы не занимать лишнее пространство. CS1 maint: обескураженный параметр ( ссылка )

Внешние ссылки [ править ]

  • Руководство по предварительной загрузке Windows
  • Prefetch или SuperFetch
  • Windows Prefetch Parser Бесплатный инструмент, который можно запустить в Windows, Linux или Mac OS-X.