|
|
Ускорение загрузки Windows XPСергей Трошин Не любит "хардкорный" пользователь персонального компьютера ждать. Хочется ему, чтобы стоящая на рабочем столе крайне дорогая его сердцу и кошельку железяка работала минимум, как суперкомпьютер из Лос-Аламоса, мгновенно отзываясь на все его действия. Пока же - в ожидании манны небесной - BIOS изучен вдоль и поперек, разогнано все, вплоть до вентиляторов и флопповодов, а при взгляде на холодильник на лице рождается коварная ухмылка: этот бы компрессор да в дело пустить - Celeron охлаждать... Шестьдесят кадров в секунду в "Кваке" уже не котируются - подавай ему все сто! Правда, последний раз именно эксперименты с ними и привели к скоропостижной кончине Windows, но зато теперь драйвер системного устройства "руки юзера" глючит гораздо меньше. Это, конечно, крайний случай, и основная масса пользователей более терпелива, но именно медлительность Windows 2000 в свое время стала одной из причин непопулярности у домашнего пользователя этой довольно надежной ОС. И дело не только в повышенной требовательности к ресурсам системы - с этим еще можно было как-то справиться, прикупив побольше памяти. Особенно неприятен был чрезмерно долгий процесс ее загрузки и выключения: на вполне современных компьютерах порой приходилось ждать появления Рабочего стола по полторы минуты! И именно домашний пользователь придает большое значение скорости работы самой ОС вообще и быстроте ее загрузки в частности. На рабочем месте, в принципе, не так важно - десять секунд надо ждать появления кнопки "Пуск" или три минуты: солдат спит, служба идет. Теория При создании Windows XP была поставлена задача добиться на типичном домашнем десктопе таких показателей: Разумеется, без некоторых исключений обойтись невозможно, это разработчики признали сразу. Например, ПК с дисками сверхвысокой емкости, с некоторыми SCSI-адаптерами, с RD-Ram, памятью ECC или с локализованной для использования иероглифов ОС должны грузиться чуть медленнее, но среднестатистический ПК с Windows XP никак не должен проигрывать по этому показателю системам семейства 9x. Собственно говоря, все это оказалось сегодня осуществимо на более или менее современных компьютерах - благодаря внедрению в жизнь требований технологий OnNow (www.microsoft.com/hwdev/onnow) и ACPI (www.teleport.com/~acpi). А вот что конкретно было сделано и удалось ли задуманное Microsoft или нет, мы и попробуем разобраться. Ход полной загрузки Windows XP можно условно разделить на четыре этапа: Поскольку набор автоматически загружаемых на старте системы программ на каждом ПК разный, то завершением загрузки непосредственно операционной системы логично считать окончание загрузки ее оболочки - Проводника, когда на экране появляется Рабочий стол. Поэтому за крайние точки отсчета при измерении времени были приняты момент нажатия кнопки Power и момент появления ярлыков на Рабочем столе. Если рассмотреть более детально получившийся в итоге серьезных усовершенствований ход загрузки Windows XP, то для условного среднего ПК она состоит из следующих процессов, часть которых протекает параллельно: Как видите, в идеале должно получаться не более 20-30 секунд, что вполне сравнимо со временем загрузки гораздо более простых систем Windows 9x. А все за счет того, что в Windows XP ускорение происходит буквально на всех этапах загрузки благодаря таким приемам, как упреждающее чтение данных, параллельная инициализация устройств, параллельное выполнение различных этапов загрузки, отложенный запуск ряда служб, исключение ряда компонентов из процесса загрузки, объединение некоторых сервисов в один общий процесс, да и при регистрации пользователя более не требуется обязательное завершение инициализации сети, а обращение к сетевым ресурсам при загрузке сведено до минимума. Это приводит к четырехкратному ускорению его работы по сравнению с Windows 2000. Причем если на ПК установлено две ОС - Windows 2000 и Windows XP, то этот эффект (но только этот - связанный с усовершенствованием ntldr) коснется и "винтукея", так как его загрузчик будет переписан более продвинутым. Кстати, благодаря новым особенностям ntldr ускорился и выход системы из спящего режима. Ну и кроме того, имеется ряд мелких доработок: например, ускорена инициализация реестра, уменьшено время на поиск PS/2-клавиатур, а если у вас имеется сетевая карта, не подключенная к сети, то это обстоятельство также более не будет вызывать задержек загрузки. Но особого внимания заслуживает ключевой режим упреждающего чтения - Prefetching. В предыдущих системах во время загрузки при инициализации драйверов, загрузке сервисов и оболочки данные с диска в память загружались последовательно, по мере поступления запросов на них. Эти же файлы, вернее, их некий общий знаменатель - файл \Winnt\Prefetch\layout.ini - используется затем дефрагментатором для оптимизации расположения файлов на диске, что еще больше сокращает время загрузки. Непосредственно же сам протокол загрузки ОС фиксируется в файле %WinDir%\ Но и это еще не все. В Windows XP появилась новая функция BootDefrag (или BootOptimize), суть которой заключается в следующем. Поскольку дефрагментация и оптимизация расположения на диске файлов, нужных системе во время загрузки, решающим образом влияет на весь процесс загрузки ОС, а пользователю часто лениво самому запускать дефрагментатор (не то чтобы даже часто, а почти всегда), то система теперь умеет сама - так сказать, без участия оператора - оптимизировать эти файлы, причем не как ей вздумается, а основываясь на данных все тех же файлов notosboot-B00DFAAD.pf и layout.ini. Правда, происходит автоматическая дефрагментация при простое системы - если пользователь 10-30 минут после загрузки ОС не производил никаких операций. А потому может случиться так, что на вашей интенсивно используемой системе файлы окажутся не оптимизированы. Если же вы сомневаетесь, работает ли вообще у вас эта функция, или хотите ее отключить, то проверьте в реестре наличие параметра, включающего BootDefrag: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
Dfrg\BootOptimizeFunction - параметр "Enable"="Y". Практика Но, к сожалению, желаемое не всегда соответствует действительному. Для того же, чтобы выяснить, как обстоят дела в реальности, на вполне конкретных компьютерах, а не на абстрактных системах из тестовых лабораторий в Редмонде, придется самолично вооружиться секундомером и небольшой утилиткой, позволяющей максимально объективно измерять время загрузки системы и по результатам мониторинга принудительно проводить оптимизацию загрузочных файлов. Называется она BootVis, а скачать ее можно отсюда - www.microsoft.com/ hwdev/fastboot/download/ BootVis_File.exe. Утилита эта примечательна во всех отношениях и вызвала своим недавним появлением настоящий фурор в некоторых сетевых конференциях. Во всех новостях утверждалось, что после ее использования система начинает грузиться на 30%, а то и на все 50% быстрее. О том, насколько это справедливо, мы еще поговорим, а пока нас интересует ее работа в части мониторинга загрузки ОС. Помимо того, что BootVis очень наглядным образом показывает, сколько и на какой этап загрузки системы уходит времени (например, параллельность выполнения этих этапов на ее графиках наблюдается более чем отчетливо), она умеет отображать график загрузки центрального процессора при старте системы, график дисковых операций ввода-вывода, график задержек при загрузке драйверов и еще ряд данных, полезных не только для удовлетворения собственного любопытства, но и для выяснения причин заторов системы во время ее загрузки. Аналогичная информация выводится и для режимов StandBy и Hibernate - на временной шкале прекрасно прослеживается весь процесс засыпания и пробуждения компьютера. Сведения, которые выводит программа, кстати говоря, не ограничиваются лишь графиками - еще более детальную информацию по каждому этапу загрузки ОС можно получить, если воспользоваться контекстным меню, появляющимся при щелчке правой кнопкой мыши на том или ином участке графика. Это режимы тестирования, которые предлагает BootVis. Учтите только, что при тестировании времени перехода в спящий режим и возврата из него вне контроля BootVis остается считывание файла hyberfil.sys, в котором сохранено содержимое оперативной памяти, так что без секундомера все-таки не обойтись. Для нашего же случая определения времени загрузки Windows нужно выбрать режим "Next Boot", после чего программа перегрузит систему и сразу после старта ПК начнет отслеживать процесс запуска ОС. Итак, на тестовый ноутбук Sony VAIO FX101 (Celeron 600, 128 Мб, 10 Гб UDMA/66), на котором "Миллениум" загружается секунд за 20, была установлена вторая система - Windows XP (раздел FAT32). Для начала отложим BootVis в сторонку и измерения произведем исключительно секундомером, дабы не было риска их исказить каким-то влиянием BootVis. Самая первая загрузка Windows XP оказалась и самой долгой - помимо того, что система не была никоим образом пока не оптимизирована, во время первого ее запуска еще имела место и куча всяких глупостей типа рекламного тура по Windows XP. Чтобы сработала функция BootDefrag, попробуем сразу же после загрузки оставить систему в бездействии минут на 30. (Именно этого и не делают многие пользователи, не знакомые с особенностями Windows XP, из-за чего их система в течение долгого времени не показывает всех своих возможностей.) И действительно - минут через 20 простоя сама по себе возникает некая дисковая активность, очень похожая на процесс дефрагментации, длится это все минут 5. Главное - результат стабильно повторяется от загрузки к загрузке, значит, можно переходить к самому интересному эксперименту: разрешить BootVis оптимизировать систему для получения обещанного 30-процентного прироста скорости загрузки. Наши 25 секунд должны после этого чудесным образом превратиться в 15, что не просто круто, а очень круто даже для Windows Me! В меню Trace выбираем пункт "Optimize System" и в течение нескольких томительных минут ожидания наблюдаем, как после перезагрузки программа упорно шуршит жестким диском, перемещая файлы по своим хитрым алгоритмам. Когда процесс дефрагментации завершается, снова запускаем мониторинг времени загрузки в BootVis, перегружаем ПК и смотрим, что же получилось... Слухи же о чудодейственных возможностях BootVis, видимо, пошли от тех товарищей, которые столь активно используют свой ПК, что у Windows нет ни минуты свободного времени на проведение дефрагментации загрузочных файлов. Рекомендации Параллельно с серьезным усовершенствованием операционной системы в части управления питанием и загрузки Microsoft дает рекомендации и пользователям предпринять со своей стороны ряд усилий для того, чтобы помочь Windows XP проявить себя во всей красе. Правда, все это отнюдь не означает, что рекомендации, подходящие к ускорению загрузки ОС, столь же благотворно скажутся на всем остальном процессе общения с Windows - например, использование NTFS не всегда оказывается оправдано на домашних системах, а пользоваться диском, имеющим всего один раздел, крайне неудобно. Почитать первоисточник вы сможете на странице www.microsoft.com/hwdev/fastboot, вкратце же рекомендации Microsoft сводятся к следующему. Но, даже воспользовавшись этими советами, вы, скорее всего, уже не получите большого прироста скорости загрузки - так, например, на моем тестовом ноутбуке отключение ряда ненужных сервисов и удаление абсолютно всех программ из автозагрузки дало выигрыш менее секунды, что, конечно же, на общем фоне смотрится очень даже бледно. Насколько мне известно, все, что им может помочь в борьбе за секунды, - это анализ протокола загрузки ОС с помощью программы Boot Log Analyzer (http://www.vision4.dial.pipex.com/) и небольшая утилита от той же Microsoft - Devview (www.microsoft.com/hwdev/NewPC/download/ pnptool.exe), показывающая, какое устройство и сколько времени требует для своей инициализации при загрузке системы. Лично я после анализа собранных ею данных отключил ненужные мне COM- и LPT-порты на своем ПК, но выигрыш от этой операции составил около секунды. Впрочем, не за секунды ли мы и боремся? За них! Источник: http://www.computery.ru/upgrade/ |
|