Можно ускорить загрузку Windows, изменив всего один параметр в реестре! Стоп… звучит слишком хорошо, чтобы быть правдой, не так ли? Однако это возможно, потому что когда-то Microsoft решила повоевать за автозагрузку с разработчиками программ. Я нарисовал для вас полную картину работы твика, чтобы ваши ожидания от него соответствовали действительности.
Что входит в понятие «автозагрузка»
Для автоматического запуска программ и скриптов в Windows, как правило, используются:
- разделы реестра Run:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
- папка «Автозагрузка», которую можно открыть командой shell – shell:startup
- задания планировщика и скрипты групповой политики, выполняющиеся при входе пользователя в систему
Программы из первых двух пунктов этого списка можно увидеть в утилите msconfig, а полную картину дает Autoruns.
Вы можете узнать больше об автозагрузке из материалов моих коллег (1 и 2), а я продолжу свой рассказ.
[+] Сегодня в программе
- Влияние программ в автозагрузке на скорость запуска Windows
- Microsoft против разработчиков программ
- Форсирование нормального приоритета потока для программ в автозагрузке
- Понижение приоритета CPU и I/O для программ в автозагрузке
- Чем кончилась война
- В каких случаях изменение в реестре ускорит загрузку системы
- Параметр реестра, изменяющий приоритет CPU и I/O для программ в автозагрузке
- Как проверить приоритет запущенных программ
- Тест
Влияние программ в автозагрузке на скорость запуска Windows
Из моей книги об ускорении загрузки Windows вы можете узнать технические подробности o порядке загрузки системы, поэтому сейчас я предлагаю взглянуть на ситуацию проще. Систему можно считать полностью загрузившейся, когда с рабочим столом или начальным экраном Windows 8 можно свободно взаимодействовать. Это значит, что система моментально откликается на запуск программ или вызов контекстных меню.
Если отбросить время, требуемое на загрузку драйверов, а также системных и сторонних служб, то программы в автозапуске становятся основным фактором, влияющим на длительность загрузки системы.
Многие программы стремятся прописаться в автозагрузку сразу при установке, а иногда это происходит без вашего ведома.
Доводилось видеть такую картину? Вряд ли у вас все так запущено, но у кого-нибудь из друзей, знакомых или родственников – вполне может быть. Все это тормозит загрузку системы!
Microsoft против разработчиков программ
Нет, Microsoft, конечно, не против разработчиков программ, ибо Windows без приложений никому не нужна. Однако Microsoft не радует, что разработчики пихают свои программы в автозагрузку. Потому что пока они стартуют, в том числе и в фоне, мы не можем нормально запускать те программы, которые нам действительно нужны. Но при этом принято говорить, что Windows долго запускается, не так ли?
Создатели Windows Vista, видимо, чувствовали, что ОС получается тяжеловатой, в том числе и в плане загрузки системы. Поэтому в Microsoft решили уменьшить негативный эффект от программ в автозагрузке и сделать рабочий стол доступным немного быстрее.
Форсирование нормального приоритета потока для программ в автозагрузке
Поток (thread) является частью процесса и может выполняться с разным приоритетом. Потокам с высоким приоритетом требуется больше ресурсов, чем их коллегам с обычным или низким приоритетом.
В Windows Vista для размещенных в автозагрузке программ зафиксировали приоритет потока (thread priority) на обычном уровне (Normal) и заблокировали любые попытки повысить его. Эти ограничения действовали на протяжении некоторого периода времени после запуска системы (подробности чуть ниже).
Логика создателей Windows Vista была такова, что если этого не сделать, некоторые разработчики будут стремиться повысить приоритет своих программ, чтобы растолкать локтями тех, кто этого не сделал. Поэтому все программы в автозагрузке поставили в равные условия.
Понижение приоритета CPU и I/O для программ в автозагрузке
Все программы в автозагрузке Windows Vista поместили в «коробку» (“box”, в терминологии Performance Team, отвечающей за производительность системы).
На практике это означало, что по умолчанию на протяжении 60 секунд после запуска системы для всех приложений в автозагрузке задавался приоритет:
- CPU ниже обычного (below normal), чтобы уменьшить нагрузку на процессор
- I/O очень низкий (very low), чтобы снизить интенсивность обращений к диску
Таким образом, каждая программа в автозагрузке меньше нагружала систему во время ее запуска. А по истечении заданного периода времени приоритет программы восстанавливался на уровень, определенный ее создателями.
Чем кончилась война
Microsoft закопала топор войны за автозагрузку с выходом Windows 7. Трудно сказать, что послужило основной причиной. Возможно, было много нареканий от корпоративных клиентов, недовольных медленным выполнением скриптов групповой политики.
С другой стороны, за три года, прошедших с выпуска Windows Vista, улучшились аппаратные конфигурации компьютеров на рынке. Появились новые, более мощные процессоры, а твердотельные накопители стали проникать в массы. Это снизило полезный эффект от помещения в коробку автоматически запускаемых программ.
Так или иначе, в Windows 7 и Windows 8 приоритет CPU и I/O для программ в автозагрузке не понижается, а возможность увеличить приоритет потока не блокируется. Однако топор войны не утоплен, а именно закопан! И ниже я расскажу, как его выкопать.
В каких случаях изменение в реестре ускорит загрузку системы
Если вы прочли предыдущий раздел статьи, то уже должны знать ответ на этот вопрос. Наибольшее ускорение загрузки Windows будет наблюдаться в системах, где:
- много программ в автозагрузке
- слабый процессор
- медленный жесткий диск (например, 5400 rpm)
Таким образом, ускорение будет заметно на глаз на нетбуке или слабом ноутбуке с двумя-тремя десятками программ в автозагрузке.
Если же у вас четырехъядерный процессор, SSD диск и минимум программ в автозапуске, вы вряд ли заметите ускорение загрузки (но возможен эффект плацебо :)
Параметр реестра, изменяющий приоритет CPU и I/O для программ в автозагрузке
Описанные выше возможности остались в Windows 7 и Windows 8. Их просто отключили, изменив низкоприоритетный период с 60 секунд до 0. Вы можете установить любой интервал по своему усмотрению!
- Запустите редактор реестра от имени TrustedInstaller
- Перейдите в раздел реестра:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\DelayedApps
- Задайте желаемое значение для параметра Delay_Sec в секундах (в десятичном формате). Например, установите 120 секунд.
- Верните исходного владельца раздела реестра, как описано по ссылке в шаге 2.
Вот и все! Теперь на протяжении заданного интервала времени программы из автозагрузки будут иметь низкий приоритет CPU и I/O.
Как проверить приоритет запущенных программ
С помощью утилиты Process Explorer вы можете быстро посмотреть, с каким приоритетом запущены процессы.
- Щелкните правой кнопкой мыши на любом столбце и выберите Select Columns.
- На вкладке Process Performance установите флажок Base Priority (в списке процессов заголовок столбца называется Priority).
- На вкладке Process I/O установите флажок Priority.
На рисунке вы видите программы, отсортированные по приоритету CPU.
У процессов от AcroRd32.exe до wmplayer.exe:
- приоритет I/O очень низкий (Very Low)
- приоритет CPU ниже обычного (6)
Обычный приоритет CPU имеет значение 8, в чем можно убедиться, щелкнув правой кнопкой мыши по процессу и выбрав в меню пункт Set Priority.
По истечении заданного интервала времени вы увидите, что приоритет процессов вернулся в нормальное русло.
Тест
Материал был бы неполным без подтверждения теории практикой. К сожалению счастью, у меня все системы относительно быстрые (так, во всех в качестве системного диска используется SSD), а в автозагрузке чистота и порядок.
Самым слабым оказался ноутбук мамы, где установлен процессор Core 2 Duo и жесткий диск 7200 rpm. В автозагрузке находились:
- Google Updater
- драйверы Synaptics и Realtek, а также какая-то утилита Toshiba
- графический интерфейс антивируса Microsoft Security Essentials
Поэтому перегруженный автозапуск программ тоже пришлось эмулировать, и я добавил туда:
- браузеры IE, Chrome и Firefox
- Microsoft Office Word и Excel
- Adobe Reader, Windows Media Player и Skype
Поскольку состав программ в автозапуске изменился, нужно было обеспечить чистоту эксперимента:
- Сделать три контрольных перезагрузки для тренировки ReadyBoot.
- Дефрагментировать загрузочные файлы.
Затем я выполнил по 5 перезагрузок системы в обычном режиме и с включенным ограничением приоритета (время в миллисекундах взято из события 100).
Номер запуска | Обычная автозагрузка | Автозагрузка с ограниченным приоритетом |
---|---|---|
1 | 66754 | 62025 |
2 | 64380 | 59823 |
3 | 69242 | 63399 |
4 | 60904 | 59787 |
5 | 72725 | 60839 |
Среднее | 66801 | 61175 |
Как видите, среднее время пяти загрузок составило 66,8 с при обычной автозагрузке против 61,2 с при ограниченном приоритете программ в автозапуске. Другими словами, в протестированной конфигурации железа и программ среднее время готовности рабочего стола сократилось на 9%, благодаря внесенному в реестр изменению.
А у вас ускорилась загрузка?
Я не сомневаюсь, что многие из вас применят этот твик и не поленятся выполнить 6-10 тестовых перезагрузок. В зависимости от вашей конфигурации и набора программ в автозагрузке, у вас может и не наблюдаться такого прироста производительности, но хуже быть не должно.
Пожалуйста, поделитесь результатами в комментариях, дополнив их сведениями о:
- типе и скорости диска
- процессоре и количестве программ в автозагрузке (используйте мой диагностический пакет)
Николай
Вадим а вы бы не могли выложить готовый твик или батник ? хочется попробовать поставить разным пользователям а вот операцию (Станьте владельцем этого раздела) у каждого что то не охота ковыряться ((
денис
Вадим выложте пожалста готовую версию твика
Дмитрий
Вадим, мне как-то попалась, на мой взгляд, очень полезная програмка по управлению автозагрузкой и я ей пользуюсь на своём ноутбуке (asus m51vr). Она позволяет отключить или установить задержку запуска программ автозагрузки. Имеет интуитивно понятный интерфейс, при решении что делать с запуском проги (отложить, запретить) показывается статистика по данной проге других пользователей… + она умеет управлять аддонами браузеров, отслеживать rh’ib программ и предлагать пути решения… бесплатна (пока во всяком случае). Вот сайт: http://www.soluto.com/
Vadim Sterkin
Николай и денис, твик реестра не сработает, пока вы не измените права на раздел. В принципе, это можно сделать из командной строки — считайте, что это ваше домашнее задание :)
Дмитрий, спасибо за информацию — выглядит интересно. Впрочем, отложенную автозагрузку можно организовать и без сторонних программ, о чем я рассказывал в блоге и книге.
Николай
Вадим я в принципе догадывался что просто твиком это не сработает я ещё спросил про батник им тоже не получится ? разве нет способа автоматизировать этот процесс просто реально напряг каждый раз у каждого пользователя это всё прокручивать Вадим может попробуйте автоматизировать этот процесс и с пользователями поделится файлом
Leonid
Вадим а антивирустник тоже будет тогда загружаться с задержкой?. Разве это правильно или я, что то не допонял.
Vadim Sterkin
Николай, я выше ответил на ваш вопрос — читайте внимательнее. Когда найдете решение (оно есть в форуме), опубликуйте его в комментариях.
Leonid,
1. Речь идет не о задержках, а о более низком приоритете.
2. Служба антивируса запускается на более раннем этапе и не связана с автозагрузкой. В автозагрузке лишь графический интерфейс антивирусной программы.
Leonid
Вадим спасибо! Извеняюсь за невнимательность.
Андрей
Да, все же готовый твик реестра не помешал бы…
Vadim Sterkin
Андрей, мои статьи призваны стимулировать работу головного мозга читателей, а не их потребительские наклонности.
Я много места уделил принципу работы твика, объясняя ситуации, в которых он имеет смысл. А вы хотите готовый твик загнать всем подряд, даже не проверив его эффект.
Если очень нужен готовый твик, активизируйте мозговые ресурсы и сделайте его сами. Я ведь это уже предлагал в двух предыдущих комментариях. Так почему вы решили, что надо меня еще подолбить?
Loner
Здравствуйте, перепутал пункты и теперь не помню для группы «система» в этом разделе нужно чтоб было полный доступ или нет?
http://i27.fastpic.ru/big/2011/0926/14/277cfd4903236ca40cc1a40f02d2ee14.jpg
Vadim Sterkin
Loner, по умолчанию полный доступ к разделу есть только у TrustedInstaller.
Loner
Спасибо что быстро ответили!
Viktor Golub
Интересная статья, как всегда. Спасибо!
У меня сейчас ПК загружается довольно таки быстро, + на этой неделе я его буду менять на другой, так что не вижу практического смысла применять вышеописанные действия в моей ситуации. Разве лишь ради спортивного интереса, но ему (интересу) никак не побороть мою лень :)
Добавлю статью в закладки, когда-нибудь да пригодится ;)
vic
Автозагрузку удобно смотреть в проге Starter
http://codestuff.obninsk.ru/products_starter.html
Olorin
До:
После:
:)
Vadim Sterkin
Olorin, спасибо за тест! Наблюдаю ускорение в 3% на довольно мощной конфигурации :) Диск у вас, наверное, не ниже 7200, т.к. загрузка и до твика была весьма быстрой.
YagroN
Поскольку Вадим сразу сказал, что на достаточно мощном «железе» и при малом количестве программ в автозапуске, все эти телодвижения скорее всего мало что дадут, то признаюсь честно, что мне просто стало лень ковырять реестр и дёргать комп тестовыми перезагрузками.
Тем более, что результаты пользователя Olorin меня совсем уж разочаровали (я бы на его месте сначала разобрался с количеством программ в автозагрузке) и на таком фоне я могу смело похвастать, что моя «семёрка» и так достаточно шустро загружается с обычного 7200об. диска. (См. скриншот)
http://s2.ipicture.ru/uploads/20110926/o5VBCfTj.png
Могу только лишний раз сказать спасибо автору, за ту самую книгу об ускорении загрузки (на титульной странице блога)!
Раньше система грузилась заметно медленнее, но после наведения порядка в автозагрузке и добавления в планировщик задачи регулярной дефрагментации загрузочных файлов — результат очень даже впечатлил.
Андрей
Спасибо! Это, то что нужно мне сейчас. И, по прежнему, вы доступно — о сложном! До свиданья!
Vadim Sterkin
Вы слишком жестко критикуете… Я считаю, что загрузка в пределах одной минуты — это очень хорошо! Да и система это не считает ошибкой.
Антивирус и пара драйверов вместе с сопровождаемыми их службами легко может дать вариацию в 10-30 секунд.
Кроме того, зависимость есть не только от кол-ва программ в автозагрузке, но и от их тяжести. Один «монстр» может стоить десятка мелких утилит.
Наконец, не все хотят возиться с распределением автозапуска по времени в планировщике.
Андрей, спасибо за отклик!
Виктор, ты часто компьютеры меняешь, как я погляжу :)
Viktor Golub
Да, есть за мной такой грешок, ничего не могу с этим поделать ;)
Yagron
Вадим, меня разочаровал 3%-й прирост, полученный Olorin в результате тестов, после чего мне уже не захотелось самому экспериментировать, поскольку вряд ли я получил бы лучший результат.
А в целом, система у Olorin, с учётом девятнадцати программ в автозагрузке, стартует достаточно быстро.
Конечно, не моё дело, но полагаю, что среди этих 19 программ наверняка найдётся пяток софтин , которые можно безболезненно убрать из автостарта.
За автозагрузкой вообще нужен постоянный глаз да глаз! Всякие там Аськи и абдейтермониторы с удивительным проворством вновь сюда просачиваются, даже будучи однажды уже удалёными отсюда.
Очень часто, даже у далеко не зелёных юзеров, в автозагрузке наблюдаю полный бардак. Да что там у юзеров! Возьмите к примеру, только что купленный ноутбук с предустановленной ОС, там уже изначально в автозагрузке сидит толпа » ну очень полезных» программ от производителей ноута, в результате чего, даже новая система может грузиться со скоростью черепахи
Victor
Спасибо за прекрасную статью!
Я тут человек новенький, поэтому сильно не ругайтесь если вопрос мой покажется вам наивным.
А почему именно 120 сек? Я думал наоборот, что чем меньше 60 сек тем лучше, а тут вдвое больше……….
Yagron
«Монстры» само собой, но есть и относительно скромные программы, которые любят «потянуть резину» при старте.
Например, программы работы со спутниковыми картами (по умолчанию лезут в автозагрузку). Не только умудряются стартовать даже раньше GUI антивируса, но при этом ещё и довольно долго возятся что-то там инициализируя (видимо, пытаясь обнаружить подключение к Инету).
Здесь только два выхода — либо сразу выкидывать из автозагрузки, либо организовывать отложенный старт.
Vadim Sterkin
Victor, идея в том, что за 2 минуты загрузка системы уже завершится (на большинстве компьютеров) и приложениям можно вернуть их родной приоритет. Если вы сделаете 15 секунд, эффекта не будет вообще.
Представьте, что вы бежите 400 м на чемпионате мира, и у ваших соперников связаны ноги. Вы бы хотели, чтобы они развязались побыстрее или подождали с этим пару минут? :)
Yagron
А теперь давайте представим, что мы не можем начать пользоваться стадионом, пока на нём не закончится чемпионат мира. Так может лучше сразу развязать всем ноги, и чем они быстрее пробегут, тем быстрее мы сможем начать пользоваться стадионом?
Я присоединяюсь к уже как минимум дважды прозвучавшему вопросу — каким образом искуственное ограничение ресурсов для
автозапускаемых программ способствует быстродействию их загрузки?
Vadim Sterkin
Вопрос поставлен неправильно. Ограничение приоритета программ способствует более быстрой загрузке операционной системы. Вы можете быстрее приступать к работе с ней и другими программами, поскольку программы из автозапуска ограничены в своих возможностях.
Что касается сокращения общего времени загрузки, которое показал тест, то ограниченные программы не так сильно мешают грузиться системе, поэтому она запускается быстрее. А когда она загрузилась, она уже не мешает программам в автозапуске.
Здесь нужно анализировать параметры BootPostBootTime и MainPathBootTime и смотреть, где экономится время.
Victor
А вам не кажется, что речь идет о совсем разных понятиях? Во втором случае нас на стадион просто не пустят, а в первом мы спокойно туда можем войти не смотря на приказ — НИКОГО НЕ ВПУСКАТЬ!
Victor
И еще
По-моему не совсем корректный пример. Нам ведь не важно кто там первый до финиша доберется, главное, чтобы на стадион быстрее впустили.
Vadim Sterkin
Гм… наверное, я зря привел метафору. В ней «вы» — это ОС.
Ладно, проехали. Вам понятно прямое объяснение, которое я также привел выше без всяких метафор?
Victor
Ну если так, тогда все понятно.
Мои результаты: (маленькое уточнение-система поставлена 10 дней назад)
До
После
Хм… интересно получается….
Еще раз, спасибо за статью!
Vadim Sterkin
Victor, я рад, что ваш (как мне показалось) изначальный скептицизм был развеян рез-татами тестов. Честно говоря, прирост неожиданно большой.
Но я также вижу, что какие-то изменения в автозагрузке произошли. «До» было 20 программ, а «после» стало 19. Это снижает чистоту эксперимента.
Victor
Честно говоря, до вашего пакета было такое:
Так это я еще порядок в автозагрузке не наводил. Удалять я из 19-ти этих программ ничего не собираюсь. Просто хочу назначить им очередность запуска. Чтобы они не толкались в куче.
Надеюсь в душе, что вы скоро напишите статейку с примерами на эту тему.
То Java Update Scheduler временно забрался в автозагрузку. )))
Victor
Сегодня
Смотрю профиль у меня растет. Это хорошо или плохо?
Виталий
Это неминуемо.
Victor
В каком плане?
Вадим, скажите, а что время загрузки получается не стабильно и может колебаться время от времени? Ибо сегодня у меня опять было
От чего это может быть?
Виталий
В том плане, что устанавливаются новые программы, старые пишут новые значения в реестр и новые файлы на диск, антивирусные базы растут от обновления к обновлению. Всё это сказывается на времени загрузки, в том числе и профиля.
Именно. Это вполне нормально. Скорость загрузки разве что от погоды на Марсе не зависит. По этому и берут среднее время минимум пяти загрузок, для минимизации погрешностей.
Плюс к тому ОС старается уменьшить последствия замедления загрузки- новые файлы, необходимые для загрузки, при дефрагментации пытается располагать последовательно, пишет статистику, старается оптимизировать себя. Вот до оптимизации профиль у тебя грузился за 4 с, после за одну (а когда- то за 0).
Думаю, Вадим согласится с вышеизложенным.
Victor
Это все понятно, но дело в том, что в последние три дня я за ноутом особо и не сидел, а загрузка увеличилась сразу на 25 сек. Я то, наивный, полагал, что если удалось ее понизить до 60 сек то теперь она и будет держаться в этом районе всегда. )))
И еще вопросик. Что тут подразумевается под понятием «Профиль»?
Vadim Sterkin
Victor, под понятием «профиль» понимается NTUSER.DAT в корне профиля — он загружается в оперативную память. Поэтому от файлов на диске или антивирусных баз скорость загрузки профиля не зависит.
Влияние установленных программ, конечно, есть, ибо многие из них пишут данные в HKCU\Software. Однако при современных мощностях компьютеров несколько сотен килобайт в реестре или даже пара мегабайт особой роли не играют.
Скорость загрузки не является постоянной величиной. И да, со временем она может деградировать. Но не надо зацикливаться на измерениях скорости, смысл жизни не в этом :)
Виталий
У меня эта ветвь весит почти 36 метров, а NTUSER.DAT — 20 мб.