Показать сообщение отдельно
Старый 03.10.2005, 22:44     # 54
Dr.God
::VIP::
Creator
 
Аватар для Dr.God
 
Регистрация: 30.05.2004
Адрес: Alongside
Сообщения: 2 598

Dr.God Бог с наворотамиDr.God Бог с наворотами
Dr.God Бог с наворотамиDr.God Бог с наворотамиDr.God Бог с наворотамиDr.God Бог с наворотамиDr.God Бог с наворотамиDr.God Бог с наворотамиDr.God Бог с наворотамиDr.God Бог с наворотамиDr.God Бог с наворотамиDr.God Бог с наворотамиDr.God Бог с наворотами
• Упреждающее чтение (Prefetch)

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

Упреждающее чтение - процедура, при которой с диска заранее считываются еще не затребованные данные; осуществляется параллельно с инициализацией устройств.

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

Непосредственно же сам протокол загрузки ОС фиксируется в файле WINDOWS\Prefetch\Prefetch\notosboot-B00DFAAD.pf, который для большей объективности содержит сведения о последних 8 запусках ОС и обновляется каждый раз спустя 1 минуту после загрузки системы (мониторинг завершается через 10 секунд после начала загрузки оболочки Explorer, так что под него попадают и некоторые автозагружаемые программы). Если его удалить, то следующая загрузка не будет использовать упреждающее чтение и вы, скорее всего, обнаружите, что система грузится почти в два раза медленнее.

Как это работает с точки зрения реестра:

Параметр: тип dword, EnablePrefetcher, значение: 3
Ветка: HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters


Возможные значения:
0 – префетчер отключён;
1 – мониторинг только приложений;
2 – мониторинг только загрузки (notosboot-B00DFAAD.pf);
3 – мониторинг и приложений и загрузки (по умолчанию).

Таким образом, если есть необходимость в экономии памяти без ущерба для скорости загрузки ОС, возможен компромисс – значение "2".

• Очистка Prefetch

Очевидно, что со временем содержимое каталога заполняют «левые» записи, что естественно не приносит пользы. Поэтому, целесообразно проводить «уборку».
Чтобы не проделывать это вручную, можно воспользоваться Windows XP Prefetch Clean And Control (28 kb). Программа также предоставляет пользовательский интерфейс для изменения значений префетчера в реестре.
Если вы часто устанавливаете/удаляете различные программы и/или меняете что-то по аппаратной части (дрова и т.п.), рекомендуется прибегать к очистке Prefetch не реже одного раза в месяц. Можно написать скрипт для «Планировщика заданий» -
Код:
[clearprefetch.vbs] 
Dim fso 
Set fso = Createobject("Scripting.FileSystemObject") 
'Dim MyVar 
'MyVar = MsgBox ("Deleting C:\WINDOWS\Prefetch. This is a typical maintenance job, does not affect the stability of the system", 0, "Note: Deleting Prefetch") 
fso.DeleteFile("C:\WINDOWS\Prefetch\*.*")
__________________
Оверклокинг Windows XP
Dr.God вне форума