Almost Over

Полная оптимизация процессора в Windows 7/8

Полная оптимизация процессора в Windows 7/8

Может кто не в курсе, под Windows 7/8 в процессорах семейства Intel/Xeon по-дефолту имеется встроенная опция энергосбережения. И если у Вашего процессора более чем одно ядро, то суть вкратце такова: изначально работает 1-2 ядра, а остальные же ядра в так называемом режиме ожидания/на парковке. И если приложение требует больше мощностей процессора, винда начинает подключать следующие и/или повышать тактовую частоту текущего ядра. После того, как приложение отработалось — «лишние» процессоры отправляются обратно на парковку, а частота рабочего ядра снижается по причине простоя. Иными словами, работает функция энергосбережения, но и для обработки задач также требуется больше времени (частота то снижается, то повышается; ядро то подключается, то выключается).
В общем-то, если у Вас ноутбук, такая функция будет даже лучше хотя-бы для экономии заряда аккумулятора. Ну а если это десктопный компьютер, то, полагаю, разумнее потратить лишних пару киловатт, сэкономив при этом бесценное время и нервы.

Управление питанием для процессора

Первым делом займёмся увеличением/снижением тактовой частоты рабочего ядра и парковкой других ядер.

Прежде всего рекомендую взглянуть на свой план электропитания и выставить нужный для оптимизации.
Открываем консоль («Выполнить» (WIN+R), вводим «cmd»), вводим:

1
rundll32 shell32.dll,Control_RunDLL PowerCfg.cpl

И по пунктам.

  1. Активируем нужный режим (например, режим «Высокая производительность»).
  2. Жмём «Настройки плана электропитания».
  3. Жмём «Изменить дополнительные параметры питания».
  4. Находим меню «Управление питанием процессора» и заодно смотрим наличие открытых опций (должно быть 1-3).

Если нужно открыть скрытые опции для процессора (необязательно)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
powercfg -attributes SUB_PROCESSOR 0cc5b647-c1df-4637-891a-dec35c318583 -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR a55612aa-f624-42c6-a443-7397d064c04f -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR ea062031-0e34-4ff1-9b6d-eb1059334028 -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 06cadf0e-64ed-448a-8927-ce7bf90eb35d -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 12a0ab44-fe28-4fa9-b3bd-4b64f44960a6 -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 40fbefc7-2e9d-4d25-a185-0cfd8574bac6 -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 4b92d758-5a24-4851-a470-815d78aee119 -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 7b224883-b3cc-4d79-819f-8374152cbe7c -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 943c8cb6-6f93-4227-ad87-e9a3feec08d1 -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR be337238-0d82-4146-a960-4f3749d470c7 -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 5d76a2ca-e8c0-402f-a133-2158492d58ad -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 465e1f50-b610-473a-ab58-00d1077dc418 -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 3b04d4fd-1cc7-4f23-ab1c-d1337819c4bb -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR bc5038f7-23e0-4960-96da-33abaf5935ec -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 893dee8e-2bef-41e0-89c6-b55d0929964c -ATTRIB_HIDE
rundll32 shell32.dll,Control_RunDLL PowerCfg.cpl

И повторяем по пунктам 2-4, что выше.

Увеличиваем минимальное число ядер в состоянии простоя

Нас больше всего интересуют 2 пункта:

  1. Минимальное число ядер в состоянии простоя.
  2. Максимальное число ядер в состоянии простоя.

Здесь цифра учитывается в процентном соотношении. Например, если у вас 4 ядра, значит при цифре 25 будет активно лишь одно ядро, а остальные 3 будут в режиме парковки (3/4 = 25%). Стоит также заметить, что винда таки не дура, и какую бы цифру вы не выставили, одно ядро так или иначе всегда будет, естественно, активно. При цифре 100 все ядра будут активны всегда.

У меня опция минимального простоя по-умолчанию была выставлена на 10%, а максимального простоя на 100%.
Для минимального простоя рекомендуется выставить 99% или 100%. Для максимального, естественно, 100%.

Выставляем минимальный простой на 100% для полного отключения парковки всех ядер:

1
2
3
4
5
powercfg -setacvalueindex scheme_current sub_processor 0cc5b647-c1df-4637-891a-dec35c318583 100
powercfg -setdcvalueindex scheme_current sub_processor 0cc5b647-c1df-4637-891a-dec35c318583 100
powercfg -setacvalueindex scheme_current sub_processor 893dee8e-2bef-41e0-89c6-b55d0929964c 100
powercfg -setdcvalueindex scheme_current sub_processor 893dee8e-2bef-41e0-89c6-b55d0929964c 100
powercfg -setactive scheme_current

Кстати, для более последних моделей процессоров есть такое понятие, под названием «Skylake». Настраивается оно немного иначе, если интересует, можно почитать на Bitsum. Там же можно скачать утилиту «ParkControl», чтобы сравнить проделанное нами. wink

Включение использования кеша 2-го уровня

Сперва нужно узнать наш кеш. В консоли вбиваем:

1
wmic cpu get L2CacheSize, L2CacheSpeed

У меня, к примеру, 1024. Если у Вас цифра отличная от 1024, значит заменяем нашу на Вашу.

1
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v SecondLevelDataCache /t REG_DWORD /d 1024 /f

Ускорение времени запуска Windows

И в качестве бонуса можно ускорить загрузку винды путём активирования всех ядер при загрузке. Хотя я как-то не заметил, что это ускорило загрузку, если по-честноку.

  1. Открываем как всегда консоль, вбиваем «msconfig».
  2. Переходим на вкладку «Загрузка», жмём кнопку «Дополнительные параметры».
  3. И ставим галочку «Число процессоров», после чего и указываем желаемое их число.

После чего перезагружаемся, и, как говорится — «Готово, проверяй!».