Windows 7: производительность при загрузке
В сегодняшней статьи мы поговорим о работе, которую ведут разработчики Windows 7 с целью сократить время загрузки ОС. И в Windows 7 разработчики намерены сократить эту характеристику до 15 секунд.
Это первая публикация старшего сотрудника команды разработки Windows 7. Позвольте мне представить Майкла Фортина (Michael Fortin), являющегося одним из самых заслуженных инженеров Microsoft и ведущим инженером команды Fundamentals, входящей в состав группы Core Operating System. Майкл отвечает за производительность и надежность платформы Windows.
Для Windows 7 мы организовали команду, чья работа целиком и полностью посвящена производительности ОС при загрузке, однако, задачи этой команды выходят далеко за пределы Windows. Кроме того, многие из наших партнеров тесно сотрудничают с нами, поэтому всех их тоже можно считать логическим продолжением нашей команды.
Под загрузкой мы понимаем одно из трех понятий: загрузка ОС, пробуждение из режима сна (sleep) или выход из режима глубокого сна (гибернации, hibernate). Несмотря на то, что время выхода из режима сна, как правило, стандартно и обычно равняется от 2 до 5 секунд в зависимости от времени запуска устройств и приложений, в данной публикации мы поговорим о загрузке как о фундаментальном понятии, о котором частенько упоминают пользователи. Что касается Windows 7, то одной из основных задач разработки стоит существенное увеличение количества компьютеров с минимальным временем загрузки. В нашей лаборатории хорошей считается система, загрузка которой занимает менее 15 секунд.
Для того чтобы компьютер загружался быстрее, требуется чтобы эффективно и с высокой степенью параллелизма выполнялись следующие действия:
- Запись файлов в память
- Инициализация служб
- Опознание и запуск устройств
- Аутентификация пользователя при загрузке
- Создание и отображение рабочего стола
- Запуск автоматически загружаемых приложений
Ввиду того, что существуют различные конфигурации компьютеров, время загрузки также может существенно отличаться. Это подтверждается результатами, полученными нашими различными лабораториями, но это можно видеть и из результатов
C нашей точки зрения уж слишком малое количество систем, загружается быстро, поэтому наша задача - увеличить их число. Безусловно, что в системах со временем загрузки более 60 секунд требуются радикальные изменения, при этом неважно, кто виноват в низкой производительности - устройства, сеть или установленные приложения. Как видите, есть системы, время загрузки которых непомерно велико. Столь заметная разница в производительности является результатом огромного выбора конфигураций и различий в качестве компонентов. Для работы ОС крайне важны задачи обслуживания, но они порой приводят к увеличению времени загрузки. Если пользователь решает установить большое по объему обновление, то реальное обновление системы может произойти при следующей загрузке, что может негативно сказаться на времени загрузки. Собранная нами статистика подтверждает этот факт, когда на запуск ОС после серьезного обновления, к сожалению, уходят минуты. Независимо от причины, мы, как элементы компьютерной экосистемы, обязаны исправить проблему с длительной загрузкой компьютеров.
И в исследовании Ботта и в нашей статистике время загрузки отражает факт готовности системы к работе. Сюда входит и авторизация, и загрузка рабочего стола. Это не идеальная метрика, но она охватывает достаточно много аспектов. В компьютерах под управлением Windows 7 и Vista данная метрика собирается автоматически и хранится в логе системных событий.
Мы осознаем тот факт, что пользователи под временем загрузки понимают и прекращение обращений к жесткому диску, и полную готовность меню Start и всех приложений к работе. Следует понимать, что значительное влияние на время загрузки оказывают пост-загрузка (когда запускаются приложения из группы автозапуска и службы с отложенной загрузкой), а также время загрузки BIOS с последующей инициализацией загрузки Windows. И предпринимаемые нами усилия учитывают мнение наших пользователей.
Перед тем, как перейти к обсуждению наших целей при разработке Windows 7, хотелось бы отметить, что мы работаем в этом направлении с нашими партнерами. При изучении различных систем мы обнаружили уйму областей, где возможно внести изменения для увеличения производительности. Нижеприведенные данные получены на реальном компьютере. Компьютеры, попадающие в наши руки прямо с полок магазинов, загружаются в течение приблизительно 45 секунд. Выполнение чистой установки Vista SP1 позволяет сократить время загрузки того же самого компьютера до 23 секунд. Очевидно, что при чистой установке существенно ниже количество запущенных процессов, да и версии драйверов могут отличаться. Тем не менее, нам удалось оптимизировать полученную с полки магазина систему, сократив время загрузки до 21 секунды, что на 2 секунды меньше, чем при чистой установке. Этого удалось добиться за счет изменений в конфигурации драйверов и BIOS.
В дополнение к сокращению времени загрузки ОС нам удалось сократить время выхода из режима сна до 2 секунд, сделав его практически незаметным для глаз. Именно поэтому мы рекомендуем нашим пользователям в качестве альтернативы обычной загрузке использовать режим сна.
В Windows 7 мы ведем работу над системными устройствами. Мы намерены в значительной степени сократить их число, равно как и их нужны в ресурсах CPU, потребности в обращениях к дискам и памяти. Наша идея очень проста: если без службы можно обойтись, то ее незачем запускать, но должен существовать некий пусковой механизм (триггер), который должен включать службу в тех редких случаях, когда она действительно нужна.
Конечно же, любая из служб призвана в какой-то степени дополнить возможности пользователя, даже самые невостребованные. Представьте ситуацию, когда к компьютеру подключается новая клавиатура, мышь или иное устройство ввода в тот момент, когда компьютер выключен. Если подключенное устройство не определилось, а драйвера не были установлены, пользователь попросту не сможет авторизоваться в системе и, как следствие, не сможет приступить к работе. Для какого-то пользователя подобная ситуация может не произойти ни разу за всю жизнь. Но для популяции, представленной сотнями миллионов пользователей, такая ситуация может происходить настолько часто, что в систему следует добавить механизмы, позволяющие избавить их от таких ситуаций. В Windows 7 мы намерены поддержать этот и другие сценарии с гораздо меньшим количеством автоматически загружаемых служб и добавлением более сложных механизмов — триггеров состояний.
Как сказано выше, инициализация устройств и драйверов может оказать существенное влияние на время загрузки. В Windows 7 мы делаем ставку на параллельную инициализацию драйверов. Это позволит избежать ситуации, когда более медленные устройства/драйвера могут негативно отразиться на общей производительности системы.
В смысле чтения с диска в Windows 7 внесены изменения в логику и механизмы "предварительной выборки" (от англ. prefetching), которая была введена в Windows XP. Поскольку нынешние диски отличаются по производительности, логика планирования подверглась некоторым изменениям, делающим технологию более эффективной. Ради интереса мы включили механизм выборки на гибридных дисках с целью оценить, а нужна ли она им. Анализ и реальные показатели производительности, полученные с различных систем, позволяет нам определить пределы, в которых мы сможем эффективно использовать технологию предварительной выборки.
В Windows 7 будут улучшены инструменты диагностики. Наша задача - быстро идентифицировать проблемы конкретных систем и обеспечить поддержку в их устранении. Мы искренне верим, что это является подходящим способом информирования пользователей о существующих в системе проблемах, как, например, чрезмерное количество автоматически загружаемых приложений или присутствие различного рода скриптов, предполагающих аутентификацию в домене. Многие пользователи знают о том, что большое количество автоматически запускаемых приложений может увеличить время загрузки системы. Некоторые пользователи, однако, сталкивались с проблемными загрузками при использовании сценариев входа в систему. В Windows XP, Vista и в Windows 7 система загружает рабочий стол, не дожидаясь продолжительных сетевых инициализаций. В корпоративной среде, однако, существует возможность изменить это поведение. К сожалению, при настройке клиентских компьютеров на запуск сценариев администраторы доменов, как правило, блокируют эту возможность. В результате на загрузку и авторизацию могут уходить минуты в случае, если в сети существуют проблемы с аутентификацией на сервере. Кроме того, эти сценарии запускают корпоративные приложения, которые активно потребляют ресурсы процессора, памяти и дисковое пространство.
В дополнение к той работе, которую мы ведем над различными функциями и службами Windows 7, мы делимся своими инструментами оценки, методиками и полученными результатами с партнерами. Собственно, инструменты доступны и энтузиастам. Инструменты, используемые нами для тестирования и корректировки проблем с загрузкой, доступны к свободной загрузке
Еще одна тема, которую мы хотели бы обсудить в будущем и которой посвящено немало комментариев, — это роль, которую играет дополнительное ПО в общей системной производительности Windows. Наличие множества приложений для Windows на деле означает, что, к сожалению, далеко не все программные продукты обладают высоким качеством, хотя, безусловно, основная масса продуктов выпускается с высоким качеством кода. Microsoft продолжит снабжать разработчиков инструментарием для создания высокопроизводительного программного обеспечения, а конечных пользователей - инструментами для обнаружения приложений, негативно сказывающихся на общей производительности системы. Windows сама по себе тоже должна совершенствоваться в плане тактики информирования пользователей о программном обеспечении, использование которого может привести к снижению производительности системы.
Еще одной темой для разговора является возможность внесения пользователями изменений в конфигурацию системы. Многие из предложенных изменений по сути бесполезны. Практика показывает, что большинство предлагаемых "твиков реестра" являются фикцией. Вот один из моих любимых примеров. Если провести поиск по фразе "Enable Superfetch on XP", поисковая система выдаст массу результатов. Могу вас заверить, что в Windows XP нет функции Superfetch, поэтому в ключах реестра, о которых упоминается на тех сайтах, попросту нет никаких значений. Наряду с подобными мифами в сети можно встретить множество рекомендаций, касающихся планирования процессорного времени, управления памятью и иными изменениями в конфигурации системы, которые на самом деле не могут увеличить производительность.
Время загрузки - это всего лишь один из многих аспектов производительности. И как было сказано в предыдущей статье, в будущем мы хотим продолжить этот разговор. Поэтому и спрашиваем, о каких других элементах производительности вы хотели бы узнать больше?
Майкл Фортин (Michael Fortin),
инженер группы Windows 7 Fundamentals
Источник:
Перевод: deeper2k
Комментарии
Есть одна проблема. Есть куча народу которые с трудом понимают принцип работы ОС. У них в автозагрузке висит от 10 до 20 приложений, и они жалуются что мол ОС плохая, что грузится долго. Вот тут мало что можно сделать...
полностью с тобой согласен...
вот помню, когда мой друг жаловался что у него комп виснет... (благо тогда было ток ХР, да и другие ОС он не знал) а у него загружались таки приложения, какие он может только 1 раз поставил...
Ну а как вам такое? 64-битная система (что ХР, что Vista) - с 8 гигами оперативки грузятся ощутимо дольше чем с 4. Ну и полностью поставленная ось со всем нужным грузится вообще - долго. Очень долго.
Вообще я согласен с тем, что ВИН7 будет грузиться быстро. Когда на компьютере будет 16 гигов озу(сейчас нет, но к 2010 возможно) 20 ядерный проц. Видеокарта на 3 гига. Вот такая конфигурация сделает вам 15 секунд. А про gostevmax. Твой процессор еле выдерживаем 8 гигбайт.
Особенно важно 3 гига в видеокарте, без такого объема речь о быстрой загрузке идти естественно не может!
motorazr, иногда лучше жевать, чем говорить. Есть что-то сказать по теме? "Остроумные" комментарии излишни.
Может я скожу не совсем по теме, но скорость загрузки ОС (как и говориться в статье) зависит от того, что запускается при старте. И вот здесь должны задуматься производители стороннего ПО. Например один очень известный производитель ПО для записи дисков в поселдних версиях своего продукта добавил СОБСТВЕННУЮ ФУНКЦИЮ ИНДЕКСАЦИИ ФАЙЛОВ ДЛЯ БЫСТРОГО ПОИСКА! Накой чёрт эта функция нужна, например в Висте??!! А, между тем она подгружается прикаждой загрузке. И как я не пытался её отключить - всё равно загружается. Если уж Microsoft и работает тесно с партнёрами, то стоило бы задуматься над этим вопросом.
Nero?
Отключается спокойно. Равно как и еще кучка их вещей, лезущая в автозапуск.
Скорость загрузки ОС отражает быстродействие ОС примерно так же, как скорость автомобиля скорость, с какой вы в него залезли. Хотя, после Висты, наверное актуально.
По теме
- Уведомления о состоянии аккумулятора в Windows 7
- Что происходит с отчетами об ошибках?
- Наш следующий этап разработки: RTM
- Разрабатывая Windows 7 для глобального рынка
- Изменения в ClearType в Windows 7
- Борьба со звуковыми сбоями в Windows 7
- Создание, сохранение и общий доступ к темам в Windows 7
- Обеспечивая защиту Windows 7: родительский контроль
- Трансляция потокового мультимедиа в Windows 7
- Наш следующий этап разработки