Статья добавлена 6 ноября 2008, в четверг, в 13:04. С того момента...
9626 |
просмотров |
0 | добавлений в избранное |
0 | комментариев |
Представлена в разделах:
Ускорение загрузки Windows XP
Не любит "хардкорный" пользователь персонального компьютера ждать. Хочется ему, чтобы стоящая на рабочем столе крайне дорогая его сердцу и кошельку железяка работала минимум, как суперкомпьютер из Лос-Аламоса, мгновенно отзываясь на все его действия.
Не любит "хардкорный" пользователь персонального компьютера ждать. Хочется ему, чтобы стоящая на рабочем столе крайне дорогая его сердцу и кошельку железяка работала минимум, как суперкомпьютер из Лос-Аламоса, мгновенно отзываясь на все его действия.
Моделирование ядерной зимы его, конечно, не интересует, а вот пошмалять по приятелям из базуки в самом навороченном спинномозговом "шутере" - святое дело. Процессор бы помощнее - я б их точно всех... И грезит он днем и ночью об очередном апгрейде - являются ему валяющийся на дороге бесхозный чемодан, набитый зелеными "буказоидами", и неожиданное наследство от давшей дуба пятиюродной бабушки троюродного дяди. Ах, Pentium 4, мечта поэта! Ах, гигабайт оперативки! Ах, джифорс намбер три! Ах!
Пока же - в ожидании манны небесной - BIOS изучен вдоль и поперек, разогнано все, вплоть до вентиляторов и флопповодов, а при взгляде на холодильник на лице рождается коварная ухмылка: этот бы компрессор да в дело пустить - Celeron охлаждать... Шестьдесят кадров в секунду в "Кваке" уже не котируются - подавай ему все сто!
Дефрагментация жесткого диска после очередного сноса разложившейся Windows так ни разу и не была проведена, поскольку потратить на это дело лишних 30-40 минут просто кощунство - ведь за это время можно пройти пару уровней Max Payne! На самом видном месте разложены ярлыки к программам, предназначенным для ускорения работы ОС - всяческим TweakUI, WinBoost, TweakDUN и прочим. Правда, последний раз именно эксперименты с ними и привели к скоропостижной кончине Windows, но зато теперь драйвер системного устройства "руки юзера" глючит гораздо меньше.
Но больше всего раздражает то, что несмотря на все усилия по разгону каждый раз при включении ПК надо ждать, пока он загрузится - ну что за фигня, почти по минуте сидеть без дела приходится, теребя в руке джойстик! Так и неврастеником стать недолго! На скорость загрузки системы никакими настройками и хитростями заметно повлиять практически не удается.
Спасает от дурдома только режим StandBy - из него машина просыпается всего за несколько секунд, которые хоть и с трудом, но пережить все же можно. Но ведь не каждый же раз им можно пользоваться - "винда" без перезагрузки очень быстро становится неуправляемой, да и страшновато надолго оставлять без присмотра включенный в нашу отечественную сеть агрегат, который, можно сказать, является единственной радостью в жизни. Нет счастья в этом мире, короче говоря...
Это, конечно, крайний случай, и основная масса пользователей более терпелива, но именно медлительность Windows 2000 в свое время стала одной из причин непопулярности у домашнего пользователя этой довольно надежной ОС. И дело не только в повышенной требовательности к ресурсам системы - с этим еще можно было как-то справиться, прикупив побольше памяти. Особенно неприятен был чрезмерно долгий процесс ее загрузки и выключения: на вполне современных компьютерах порой приходилось ждать появления Рабочего стола по полторы минуты!
И это при том, что Windows 98 загружалась максимум секунд за тридцать, а "Миллениум", из которого почти выкорчевали DOS-составляющую, - и того быстрее. Разумеется, если бы преемник Windows 2000 был бы столь же вялым при загрузке, это стало бы серьезным фактором, препятствующим давно задуманному Microsoft переводу на платформу NT избалованных стремительностью и легкостью Windows 9x домашних пользователей. А ведь ставка разработчиками Windows XP делалась главным образом на них - именно эта категория потребителей способна сегодня принести корпорации наибольшие дивиденды.
И именно домашний пользователь придает большое значение скорости работы самой ОС вообще и быстроте ее загрузки в частности. На рабочем месте, в принципе, не так важно - десять секунд надо ждать появления кнопки "Пуск" или три минуты: солдат спит, служба идет. Тем более что потратить эти несколько минут на загрузку системы нужно всего раз или два в день. А вот дома, когда нетерпеливому подростку хочется после школы поскорее залезть в интернет, пока родители не пришли и не увидели, что он там высматривает, - тут уже каждая секунда на счету.
И чтобы не распугать простых пользователей долгими утомительными загрузками, создатели Windows XP постарались на славу - впервые одним из приоритетных направлений при создании ОС было именно сокращение времени, необходимого на запуск системы, а так же на вывод ее из режимов StandBy и Hybernate.
Теория
При создании Windows XP была поставлена задача добиться на типичном домашнем десктопе таких показателей:
выход из режима Standby (S3) - не более 5 секунд;
выход из режима Hibernate (S4) - не более 20 секунд;
обычная загрузка до рабочего состояния - не более 30 секунд.
Разумеется, без некоторых исключений обойтись невозможно, это разработчики признали сразу. Например, ПК с дисками сверхвысокой емкости, с некоторыми SCSI-адаптерами, с RD-Ram, памятью ECC или с локализованной для использования иероглифов ОС должны грузиться чуть медленнее, но среднестатистический ПК с Windows XP никак не должен проигрывать по этому показателю системам семейства 9x. Собственно говоря, все это оказалось сегодня осуществимо на более или менее современных компьютерах - благодаря внедрению в жизнь требований технологий OnNow и ACPI . А вот что конкретно было сделано и удалось ли задуманное Microsoft или нет, мы и попробуем разобраться.
Ход полной загрузки Windows XP можно условно разделить на четыре этапа:
загрузка основных файлов ОС в память;
инициализация устройств;
регистрация пользователя (Winlogon), старт системных служб и оболочки Explorer;
загрузка дополнительного программного обеспечения.
Поскольку набор автоматически загружаемых на старте системы программ на каждом ПК разный, то завершением загрузки непосредственно операционной системы логично считать окончание загрузки ее оболочки - Проводника, когда на экране появляется Рабочий стол. Поэтому за крайние точки отсчета при измерении времени были приняты момент нажатия кнопки Power и момент появления ярлыков на Рабочем столе.
Если рассмотреть более детально получившийся в итоге серьезных усовершенствований ход загрузки Windows XP, то для условного среднего ПК она состоит из следующих процессов, часть которых протекает параллельно:
начальная инициализация (в частности - дисков) - в Windows XP составляет около 2 секунд против 8 в Windows 2000;
инициализация драйверов устройств - зависит от конкретной системы, порядка 4 секунд;
новинка Windows XP - упреждающее чтение "Prefetching", при котором с диска заранее считываются еще не затребованные данные; осуществляется параллельно с инициализацией устройств - около 6 секунд;
инициализация реестра и файла подкачки - еще пара секунд;
инициализация видеоподсистемы и установка нужного разрешения экрана - тоже порядка пары секунд;
регистрация пользователя и запуск служб - около 8 секунд;
старт оболочки Explorer - 2 секунды.
Как видите, в идеале должно получаться не более 20-30 секунд, что вполне сравнимо со временем загрузки гораздо более простых систем Windows 9x. А все за счет того, что в Windows XP ускорение происходит буквально на всех этапах загрузки благодаря таким приемам, как упреждающее чтение данных, параллельная инициализация устройств, параллельное выполнение различных этапов загрузки, отложенный запуск ряда служб, исключение ряда компонентов из процесса загрузки, объединение некоторых сервисов в один общий процесс, да и при регистрации пользователя более не требуется обязательное завершение инициализации сети, а обращение к сетевым ресурсам при загрузке сведено до минимума.
Кроме того, Windows XP поддерживает спецификацию Simple Boot Flag , благодаря которой автоматически сокращается время, необходимое BIOS для проведения процедуры самотестирования POST в случае, если предыдущая загрузка ОС была успешной. Улучшен системный загрузчик ntldr, который теперь умеет кэшировать данные о файлах и директориях, чтобы сократить обращения к диску при загрузке. Это приводит к четырехкратному ускорению его работы по сравнению с Windows 2000. Причем если на ПК установлено две ОС - Windows 2000 и Windows XP, то этот эффект (но только этот - связанный с усовершенствованием ntldr) коснется и "винтукея", так как его загрузчик будет переписан более продвинутым. Кстати, благодаря новым особенностям ntldr ускорился и выход системы из спящего режима. Ну и кроме того, имеется ряд мелких доработок: например, ускорена инициализация реестра, уменьшено время на поиск PS/2-клавиатур, а если у вас имеется сетевая карта, не подключенная к сети, то это обстоятельство также более не будет вызывать задержек загрузки.
Оптимизирована управление питанием во многих аспектах, в частности, улучшена работа спящего режима Hibernation - теперь в файл-образ оперативной памяти не сбрасываются пустые страницы, алгоритм его компрессии улучшен, при записи на диск файла hyberfil.sys используется режим DMA, а запись на диск и компрессия идут параллельными процессами. Обновлен алгоритм оповещения устройств и приложений об изменении режима электропитания. В результате ускорена не только обычная загрузка, но и пробуждение ПК из спящего и ждущего режимов.
Но особого внимания заслуживает ключевой режим упреждающего чтения - Prefetching. В предыдущих системах во время загрузки при инициализации драйверов, загрузке сервисов и оболочки данные с диска в память загружались последовательно, по мере поступления запросов на них. Теперь же Windows XP параллельно с выполнением других операций заранее считывает эти данные, не дожидаясь запроса, что приводит к самому значительному эффекту. Этот интеллектуальный алгоритм упреждающего чтения применяется и к запуску программ - после первого запуска каждой программы создаются специальные сценарии их загрузки (они хранятся в папке WinntPrefetch), в которых описано, какие файлы нужно заранее поместить в память. Эти же файлы, вернее, их некий общий знаменатель - файл WinntPrefetchlayout.ini - используется затем дефрагментатором для оптимизации расположения файлов на диске, что еще больше сокращает время загрузки.
Кстати, вы можете сами проверить, насколько эффективен этот механизм применительно к загрузке ОС - отключить Prefetching можно, установив в разделе реестра HKEY_LOCAL_MACHINESYSTEM CurrentControlSetControlSession Manager Memory ManagementPrefetchParameters параметр "EnablePrefetcher" равным "0".
Непосредственно же сам протокол загрузки ОС фиксируется в файле %WinDir% Prefetch
otosboot-B00DFAAD.pf, который для большей объективности содержит сведения о последних 8 запусках ОС и обновляется каждый раз спустя 1 минуту после загрузки системы (мониторинг завершается через 10 секунд после начала загрузки оболочки Explorer, так что под него попадают и некоторые автозагружаемые программы). Если его удалить, то следующая загрузка не будет использовать упреждающее чтение и вы, скорее всего, обнаружите, что система грузится почти в два раза медленнее.
Но и это еще не все. В Windows XP появилась новая функция BootDefrag (или BootOptimize), суть которой заключается в следующем. Поскольку дефрагментация и оптимизация расположения на диске файлов, нужных системе во время загрузки, решающим образом влияет на весь процесс загрузки ОС, а пользователю часто лениво самому запускать дефрагментатор (не то чтобы даже часто, а почти всегда), то система теперь умеет сама - так сказать, без участия оператора - оптимизировать эти файлы, причем не как ей вздумается, а основываясь на данных все тех же файлов notosboot-B00DFAAD.pf и layout.ini. Правда, происходит автоматическая дефрагментация при простое системы - если пользователь 10-30 минут после загрузки ОС не производил никаких операций. А потому может случиться так, что на вашей интенсивно используемой системе файлы окажутся не оптимизированы.
Проверить, произошла ли оптимизация, можно, заглянув в реестр - если в разделе HKEY_LOCAL_MACHINESOFTWAREMicrosoft DfrgBootOptimizeFunction стоит параметр "OptimizeComplete"="Yes", то дефрагментация была произведена. Если же этого пока не случилось, то просто перегрузите ПК и оставьте его минут на тридцать в одиночестве - Windows сама все сделает, и ускорение следующей загрузки будет заметно даже на глаз.
Только запомните, что перед оптимизацией ПК со свежеустановленной ОС должен иметь в своем багаже хотя бы три перезагрузки для накопления нужных данных. Штатный дефрагментатор Windows XP не отменяет эту оптимизацию, так что пользоваться им можно без опаски.
Если же вы сомневаетесь, работает ли вообще у вас эта функция, или хотите ее отключить, то проверьте в реестре наличие параметра, включающего BootDefrag: HKEY_LOCAL_MACHINESOFTWAREMicrosoft DfrgBootOptimizeFunction - параметр "Enable"="Y".
В принципе, если система уже однажды оптимизирована и файлы на диске расположены должным образом, то вряд ли есть смысл оставлять эту функцию и дальше работающей - ее отключение может еще немного ускорить загрузку.
Читаем далее: http://aikomp.com/nev/index.php?newsid=916
Источник: http://aikomp.com