Вадим Стеркин

Что входит в понятие «автозагрузка»
Для автоматического запуска программ и скриптов в Windows, как правило, используются:
- разделы реестра Run:
- папка «Автозагрузка», которую можно открыть командой shell – shell:startup
- задания планировщика и скрипты групповой политики, выполняющиеся при входе пользователя в систему
Программы из первых двух пунктов этого списка можно увидеть в утилите msconfig, а полную картину дает Autoruns.
Вы можете узнать больше об автозагрузке из материалов моих коллег (1 и 2), а я продолжу свой рассказ.
[+] Сегодня в программе
Влияние программ в автозагрузке на скорость запуска Windows
Из моей книги об ускорении загрузки Windows вы можете узнать технические подробности o порядке загрузки системы, поэтому сейчас я предлагаю взглянуть на ситуацию проще. Систему можно считать полностью загрузившейся, когда с рабочим столом или начальным экраном Windows 8 можно свободно взаимодействовать. Это значит, что система моментально откликается на запуск программ или вызов контекстных меню.
Если отбросить время, требуемое на загрузку драйверов, а также системных и сторонних служб, то программы в автозапуске становятся основным фактором, влияющим на длительность загрузки системы.
Многие программы стремятся прописаться в автозагрузку сразу при установке, а иногда это происходит без вашего ведома.
Доводилось видеть такую картину? Вряд ли у вас все так запущено, но у кого-нибудь из друзей, знакомых или родственников – вполне может быть. Все это тормозит загрузку системы!
Microsoft против разработчиков программ
Нет, Microsoft, конечно, не против разработчиков программ, ибо Windows без приложений никому не нужна. Однако Microsoft не радует, что разработчики пихают свои программы в автозагрузку. Потому что пока они стартуют, в том числе и в фоне, мы не можем нормально запускать те программы, которые нам действительно нужны. Но при этом принято говорить, что Windows долго запускается, не так ли?
Создатели Windows Vista, видимо, чувствовали, что ОС получается тяжеловатой, в том числе и в плане загрузки системы. Поэтому в Microsoft решили уменьшить негативный эффект от программ в автозагрузке и сделать рабочий стол доступным немного быстрее.
Форсирование нормального приоритета потока для программ в автозагрузке
Поток (thread) является частью процесса и может выполняться с разным приоритетом. Потокам с высоким приоритетом требуется больше ресурсов, чем их коллегам с обычным или низким приоритетом.

Логика создателей 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
- Перейдите в раздел реестра:
- Задайте желаемое значение для параметра 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
Поскольку состав программ в автозапуске изменился, нужно было обеспечить чистоту эксперимента:
Затем я выполнил по 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 тестовых перезагрузок. В зависимости от вашей конфигурации и набора программ в автозагрузке, у вас может и не наблюдаться такого прироста производительности, но хуже быть не должно.
Пожалуйста, поделитесь результатами в комментариях, дополнив их сведениями о:
- типе и скорости диска
- процессоре и количестве программ в автозагрузке (используйте мой диагностический пакет)
Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.
Об авторе
Вадим является владельцем этого блога, и большинство записей здесь вышло из-под его пера. Подробности о блоге и авторе здесь.
Вас также может заинтересовать:
Подпишитесь на бесплатные уведомления о новых записях и получите в подарок мою книгу об ускорении загрузки Windows!
Как уменьшить время загрузки Windows в 2+ раз
Надоело, что Windows 7,8,10 медленно загружается? ДА, чем больше времени установлена операционная система, тем больше начинает мучить эта тема. Компьютеры становятся всё мощнее и производительнее, но вместе с этим растут и запросы программ, которые разрабатываются под новое оборудование. Так, например, Windows XP загружается на порядок быстрее, чем Windows 7/10 на одинаковом оборудовании.
Так что теперь, отказаться от новых возможностей ради быстрой загрузки операционной системы? Нет, к счастью есть хитрые и не очень приёмы, которые помогут нам в решении данной проблемы. В этой статье вы узнаете как программно сократить время загрузки Windows до 20 секунд и менее.
Шаг первый, службы и процессы
В ОС Windows частенько запускаются лишние службы, которые тормозят загрузку и работу системы. Также предусмотрена поддержка разнообразного оборудования, поэтому службы, обеспечивающие его правильную работу, запускаются вместе с системой. Конечно, если система посчитала, что в службе нет необходимости (поскольку, соответствующего устройства в компьютере попросту нет), то она отключается. Но на запуск, проверку и остановку службы всё равно тратится время.
Запускаем программу «Конфигурация системы», для этого жмём «Win+ R», пишем в окошке: msconfig и жмём Enter. Чтобы отключить временно ненужные службы, переходим в одноимённую вкладку:
Но нужно понимать какие службы можно выключить, а какие необходимо оставить рабочими. По большинству служб легко найти информацию в интернете, поэтому останавливаться подробно на этом не буду. Скажу только: не надо торопиться и отключать всё подряд, это может печально отразиться на работе операционной системы.
Пользуясь той же логикой, отключаем программы, загружаемые при старте системы, на следующей вкладке «Автозагрузка». Более подробно как отключить автозапуск программ в Windows 7-10 рассказано в отдельной статье. Для применения новых параметров запуска необходимо будет перезагрузить компьютер.
Шаг второй, реестр
Существует в Windows слабое место – реестр. Так уж издревле повелось, что большинство жизненно важных параметров Windows хранятся в иерархической базе данных. От того, с какой скоростью ОС находит нужные записи в реестре, напрямую зависит как скорость загрузки, так и работа ОС Windows в целом.
Не редко деинсталляторы программ работают неэффективно, оставляя в реестре записи о своём присутствии и работе (параметры, регистрируемые библиотеки, привязка к определённым расширениям файлов и т.д.). Такие записи можно считать мусором, захламляющим БД. И от этого мусора необходимо избавляться, для чего стоит использовать такие утилиты как, например, Reg Organizer, CCleaner, Ashampoo WinOptimizer и другие.
Запускаем CCleaner, переходим в раздел «Реестр», нажимаем «Поиск проблем», и по окончанию — «Исправить выбранное»:
Во время такой очистки, да и просто во время работы Windows, реестр постоянно подвергается фрагментации. Значит необходимо будет выполнить ДЕфрагментацию реестра. Это можно сделать с помощью программы Defraggler, того же разработчика. Однако, сделаю важное замечание, что в некоторых случаях «чистка» реестра может затронуть и важные параметры. Поэтому обязательно предварительно создавайте точки восстановления системы, и в случае проблем в работе Windows вы сразу сможете восстановиться до предыдущего состояния.
Шаг третий, главный
Теперь можно приниматься за глубокую оптимизацию процесса загрузки системы и программ. Во время выполнения приложений может происходить множество побочных действий, таких как долгая загрузка дополнительных библиотек и подпрограмм, предсказание условных переходов, кеш промахи и всё в таком роде. Анализ таких данных называется профилированием.
Поскольку рассматриваемая ОС создана компанией Microsoft, то воспользуемся профилировщиком, созданным в той же компании – Windows Performance Toolkit. С недавних пор этот инструмент стал входить в состав Windows SDK. На сайте компании Microsoft можно скачать web-установщик.
Все входящие компоненты ставить необязательно, можно обойтись лишь Windows Performance Toolkit
Данный инструмент позволяет провести трассировку загрузки операционной системы с самого начала. Нам нужен исполняемый файл «xbootmgr.exe», который находится в той папке, куда вы соизволили установить Windows Perfomance Toolkit, по умолчанию он располагается в директории «C:\Program Files\Microsoft Windows Performance Toolkit\».
Посмотрите видео или продолжите чтение статьи:
Для вызова утилиты следует запустить xbootmgr.exe с параметром, например параметр «-help» отобразит список всех возможных функций. Для этого нажимаем кнопки «Win + R» или идём в меню «Пуск -> Выполнить», и в окно вводим команду:
Путь к файлу добавлять не обязательно, если и так запускается:
Ради интереса, если хотите посмотреть, как ваша система ведёт себя при запуске в данный момент, то выполните команду:
xbootmgr -trace boot
Она перезагрузит компьютер и соберёт данные во время запуска. Результат её работы можно посмотреть в файле boot_BASE+CSWITCH_1.etl, который xbootmgr сохранит в своей папке или в папке «C:\Users\ваше_имя». В этом файле содержится вся информация о поведении программ при запуске системы, можно увидеть много интересного. Для этого нужно кликнуть по файлу два раза, чтобы открылся Анализатор:
Если интересно, изучите информацию, здесь есть всё в мельчайших подробностях о процессе загрузки: сколько секунд ушло на запуск каждого процесса, как использовались ресурсы компьютера и др.
Теперь перейдём к делу — запустим процесс автоматического анализа и ускорения загрузки Windows. Выполните команду:
xbootmgr -trace boot –prepsystem
В ходе оптимизации, по умолчанию, будет выполнено 6 перезагрузок и в той же директории будет сохранено 6 файлов с информацией о поведении программ при каждой перезагрузке. Весь этот процесс довольно длительный, но участия пользователя не требует. С успехом можно пообедать пока программа работает. И не забудьте сначала проверить, что есть пару Гигабайт свободного места на диске «C:»!
После перезагрузок будут появляться сообщения в белом окошке, например «Delaying for boot trace 1 of 6» с отсчётом времени:
При этом не нужно пытаться работать за ноутбуком, просто ждите. Будут появляться и другие сообщения. На втором этапе окошко «Preparing system» у меня провисело минут 30, при этом процессор ничем загружен не был, но потом всё-таки перезагрузка произошла и остальные этапы прошли быстро. Реально на весь процесс может уйти час.
Что же делает Xbootmgr? Он не отключает не нужные службы и процессы, как могло показаться. Xbootmgr оптимизирует загрузку таким образом, чтобы в каждый момент времени ресурсы компьютера использовались максимально. Т.е., чтобы не было такого, когда процессор загружен на 100%, а жёсткий диск отдыхает, или наоборот. Также происходит дефрагментация системных файлов. После последней перезагрузки ничего делать не надо, Windows будет загружаться, и даже работать, быстрее.
Шаг четвёртый, опасный
В семёрке, как впрочем и в XP (хотя об этом догадываются не все), есть поддержка многоядерных процессоров. Непонятно только почему система не всегда сама в состоянии задействовать все имеющиеся ресурсы при своём запуске, а начинает их использовать только, когда уже полностью загрузилась и пользователь приступил к работе.
Значит надо помочь ей задействовать имеющиеся ресурсы в параметрах запуска системы. Для этого нужно покопаться в конфигурации. Сочетанием клавиш «Win + «R» открываем окно «Выполнить» и пишем команду msconfig , жмём «Ок». В появившемся окне конфигурирования системы выбираем вкладку «Загрузка»
Выбираем «Дополнительные параметры»
В появившемся окне выставляем на максимум параметры «Число процессоров» и «Максимум памяти». Теперь внимание! Закрываем и снова открываем программу, смотрим что значение «Максимум памяти» не сбросилось в «0». Если так, то снимаем отсюда галочку, иначе система может не запуститься вообще. Перезагружаемся, готово.
Заключение
Описанные выше шаги позволили сократить время загрузки ОС Windows 7 Ultimate на нетбуке (процессор Intel Atom N570, 2ГБ DDR3 и HDD со скоростью вращения 5400rpm) с 62 до 28 секунд. Скорость загрузки можно увеличивать не только программно, но и аппаратно. Так, например, замена винчестера на твёрдотельный SSD накопитель уменьшит время загрузки ОС примерно вдвое. Теперь можете перейти на новый уровень и ещё лучше оптимизировать Windows.





