На что влияет количество ядер процессора?
Многие путают понятие количества ядер и частоту процессора. Если это сравнивать с человеком, то мозг это процессор, нейроны — это ядра. Ядра работают не во всех играх и приложениях. Если в игре например выполняется 2 процесса, один вырисовывает лес, а другой город и в игре заложено многоядерность, то понадобиться всего 2 ядра, чтобы загрузить эту картинку. А если в игре заложено больше процессов, то задействуют все ядра.
И может быть наоборот, игра или приложение может быть написана так, одно действие может выполнять только одно ядро и в этой ситуации выиграет процессор, у которого выше частота и наиболее хорошо сложена архитектура (по этому обычно процессоры Интел чуть выигрывают Амд).
По этому грубо говоря, количество ядер процессора, влияет на производительность и быстродействие.
Все ядра в windows задействованы по умолчанию
На самом деле операционная система Windows знает о всех ядрах процессора с момента установки на компьютер и использует их по мере необходимости. Убедиться в этом можно запустив диспетчер задач через всем знакомую комбинацию клавиш “Ctrl” “Alt” “Del” и перейдя на вкладку “Производительность” (Быстродействие).
Окно будет поделено на количество частей равное количеству ядер (потоков) в вашем процессоре. И для каждого из них будет рисоваться график загруженности. Это значит, что в данный момент они задействованы для выполнения тех или иных задач.
Для чего же тогда нужна настройка “число процессоров”?
Она нужна для ограничения использования ядер (потоков) вашего процессора. Причин на это может быть много. Например, у вас есть старая программа, которая не рассчитана на работу в многопоточной среде из-за чего не хочет запускаться.
В этом случае вы ограничиваете число потоков до нужного значения при помощи данной настройки, перезагружаетесь и получаете работоспособное приложение. Также такая возможность может пригодится тем, кто пишет программы под конкретное число ядер и хочет проверить их работоспособность.
Заставить игру использовать все ядра процессора
Второй миф объяснить сложнее. Дело в том, что программы работают совсем не так, как представляется пользователям ПК. А где много невежества, там много эффекта Даннинга — Крюгера и, конечно, мифов.
Недовольные скоростью запуска программ, частотой смены кадров в играх, люди любят смотреть потребление ресурсов ЦП в Диспетчере задач и заниматься бессмысленными попытками что-то оптимизировать. К примеру, пытаются регулировать параметры вроде предыдущей настройки, чтобы их любимая программа загружала на 100% все ядра процессора.
Проблема в том, что многие манипуляции, популярные благодаря магическому мышлению, на деле в лучшем случае бесполезны. Это сродни использованию чехлов для телефонов, защищающих тело от «вредной» радиации. Знающие физику люди только покрутят пальцем у виска, в то время как остальные скупают чехлы пачками и рекомендуют знакомым поступать так же.
Но вернёмся к работе программ на многоядерных процессорах. На границе знания и незнания возникла «гениальная» идея использовать программу CPU Control для назначения играм всех ядер.
Совет начал встречаться более десяти лет назад. Например, при обсуждении игры Gothic 3, которая любила тормозить на любом, даже самом мощном ПК:
На скриншоте выше пользователь s063r посчитал, что игра не задействует второе ядро процессора. Товарищ Shifroval посоветовал использовать программу CPU Control.
Что же это за чудо-зверь такой, который залезает в программный код и заставляет программу изменить логику своей работы? CPU Control — это примитивная утилита для назначения процессу одного или нескольких ядер процессора:
К сожалению, разработчики этой софтины поступили глупо, сделав так, что при запуске все запущенные программы автоматически «назначаются» на первое ядро процессора (включается некий режим «Manual»). Обратите внимание на столбец «CPU» при запуске CPU Control:
Единица и три нуля означают, что программе назначено только первое по счету ядро процессора (четырёхъядерного, по мнению CPU Control). И это происходит после запуска самой утилитой. То, что до запуска ситуация была иной, с помощью CPU Control увидеть нельзя.
То есть получается нехорошая ситуация: человек запускает CPU Control и видит — о ужас — все программы назначены только на одно ядро!
Ложный совет звучит так:программы работают только на одном ядре, в чем можно убедиться, запустив CPU Control. И там можно назначить программе использование всех ядер процессора.
Но это абсолютно неверное утверждение легко опровергнуть. Если до запуска утилиты CPU Control запустить Диспетчер задач и на вкладке «Подробности» нажать по любому процессу правой кнопкой мыши и выбрать пункт «Задать сходство», то становится понятно, что изначально программам всегда доступны все ядра:
На самом деле до запуска CPU Control ограничений на одно ядро не было. Это сама утилита при запуске назначает всем программам первое по счёту ядро. Назначение через CPU Control на все ядра возвращает настройку по умолчанию. Только и всего.
Если задействовать критическое мышление, возникнут вопросы:
- А почему Windows так сама не делает? Одноядерные процессоры днём с огнём уже не сыщешь, даже в офисных ПК минимум двухъядерники стоят. Почему какая-то утилита якобы может запустить программу на всех ядрах, а Windows спустя десятки лет развития — нет?
- Как вообще посторонней утилите удаётся что-то там регулировать внутри программ, якобы распределяя потоки по всем ядрам?
Ответ прост: CPU Control не делает того, что ей приписывают. Более того, на умение софта «задействовать» все ядра процессора нельзя повлиять извне. Это, в общем-то, внутреннее дело программ — в зависимости от алгоритмов некоторые задачи могут выполняться параллельно на нескольких ядрах, а могут только на одном. Даже слово «назначить» тут не совсем верное — правильнее употреблять «ограничить».
Без переписывания исходного кода программ как-то повлиять на то, сколько и как ядра ЦП будут «задействоваться», невозможно. Ограничить или дать потенциальную возможность — да, можно. А «задействовать», если изначально программа этого не умеет — нет, никак.
Задачу, которая предназначается для одного потока, нельзя запараллелить влиянием извне. Нужно менять саму задачу, применять другие алгоритмы. Это касается не только компьютеров, а вообще всех сфер деятельности — от производственных процессов до офисной работы.
Однако в интернете и в комментариях под этим текстом люди на полном серьёзе убеждают, что утилита помогает, что игры начинают работать быстрее. Неправы ли они? Не совсем!
Миф очень живуч, потому что иногда переназначение софта на разные ядра делает компьютер отзывчивее. Происходит в ситуации, когда в системе запущен процесс, сильно нагружающий процессор, о которой юзер из-за неумения пользоваться системным Монитором ресурсов не знает.
Это может быть какой-нибудь скрытый вирус-майнер или вкладка браузера с большим количеством тяжёлых элементов на странице (видео, онлайн-игр, рекламы). Тогда назначение только на одно ядро ограничивает доступные зловреду ресурсы и дает возможность остальным ядрам процессора работать на благо игры, ведь пользователь назначит ей все ядра. Но это лечение симптома, не решение проблемы.
Как нужно настраивать на самом деле?
Тогда получите что хотели: увеличение производительности ПК.
Кстати, CPU Control на восьмиядерных системах видит только четыре ядра. Ждём советы по включению пропавших ядер?
Как запустить все ядра процессора?
Итак, способов будет несколько. По этому показываю первый.
Заходим в пуск — выполнить или клавиши win r
Пишем msconfig
Далее в открывшемся окне переходим в загрузки — дополнительные параметры.
Выбираем ваше максимальное число процессоров.
Так кстати можно узнать количество ядер процессора. Но это виртуальные ядра, а не физически. Физических может быть меньше.
Нажимаем ОК, перезагружаемся.
Далее способ 2.
- Заходим в диспетчер задач — ctrl shift esc.
- Или ctrl alt del и диспетчер задач.
- Или нажимаем правой кнопкой по панели управления и выбираем диспетчер задач.
Переходим во вкладку процессы. Находим игру и нажимаем правой кнопкой мыши по процессу. Да кстати, игра должна быть запущена. Свернуть её можно или Win D или alt tab.
Выбираем задать соответствие.
Выбираем все и нажимаем ок.
Чтобы посмотреть, работают все ядра или нет, то в диспетчере задач заходим во вкладку быстродействие.
Во всех вкладках будет идти диаграмма.
Если нет, то нажимаем опять задать соответствие, оставляем только ЦП 0, нажимаем ок. Закрываем диспетчер задач, открываем опять повторяем все, то же самое, выбираем все процессоры и нажимаем ок.
Ещё!
В ноутбуках, бывает настроено энергосбережение таким образом, что настройки не дают использовать все ядра.
- Win7 — Заходим в панель управления, идем в электропитание — Изменить параметры плана — изменить дополнительные параметры питания — управление питанием процессора — минимальное состояние процессора.
- Win8, 10 — Или: параметры — система — питание и спящий режим — дополнительные параметры питания — настройка схемы электропитания — изменить дополнительные параметры питания — управление питанием процессора — минимальное состояние процессора
Для полного использования, должно стоять 100%.
Как проверить сколько работает ядер?
Для этого скачиваем программу CPU-Z.
Запускаем и видим число активных ядер.
Не путайте этот параметр с количеством виртуальных процессоров, который отображены правее.
Оптимизация ядер и памяти с помощью msconfig
Совет изменения настроек в системной утилите MSConfig основан на допущении, что Windows при загрузке не использует все ядра процессора и мегабайты оперативной памяти. Якобы нужно указать их нужное количество с помощью «секретной» настройки, чтобы компьютер быстрее включался и всё быстрее работало.
До «секретной» опции можно добраться так: Пуск — Выполнить (в Windows 10 используйте поле поиска вместо Выполнить) — msconfig — OK.
Запустится программа Конфигурация системы (msconfig.exe). Вкладка Загрузка:
Нужно нажать Дополнительные параметры, чтобы открыть параметры загрузки Windows и там будут вожделенные «суперсекретные» опции:
Пока очумелые ручки не добрались до настроек, здесь ничего указано не будет, галочки проставлены не будут. С чего бы разработчикам Windows ограничивать производительность системы?
Но люди, не использующие критическое мышление, думают иначе: раз изначально галка не стоит, значит, ограничение включено. Якобы отсутствие галочек не даёт операционной системе узнать, сколько ядер у процессора и сколько оперативной памяти установлено. И якобы нужно указать вручную:
И после перезагрузки компьютер начнет использовать все ресурсы. Это противоречит третьему тезису о том, что Microsoft не ограничивает производительность изначально.
Вариантов у этого совета несколько. Я прошёлся по сайтам, посвящённым оптимизации Windows, выбрав парочку. Например, некий Юрий считает, что по умолчанию установлена загрузка с одного ядра:
Другие вспоминают про оперативную память. «Блог мастера ПК» утверждает, что с ней та же беда.
Я обрезал часть текста, чтобы не было длинного скриншота. Вот что автор советует дальше:
Он советует указать не только количество ядер, но и размер памяти. А в конце говорит, что можно снять галочку.
Стоп. Где логика? Устанавливается опция, после отключается, как такая манипуляция может на что-то влиять в принципе?
Откуда миф? Полагаю, дело не только в незнании матчасти советчиков и отсутствии логического мышления, но и неоднозначной официальной справке по MSConfig. В статье MSConfig the System Configuration Tool на официальном сайте Microsoft описание опций действительно оставляет место домыслам, если не знать контекста:
Текст официальной инструкции по использованию MSConfig не противоречит мифу: действительно можно указать, сколько процессоров и оперативной памяти использовать при загрузке. Вот только предназначены эти опции не для повышения производительности, а для ограничения в целях тестирования.
Если задуматься о репутационных потерях, о штрафах и прочем, возникает понимание, что миф о настройке в MSConfig — полная чушь. В каком бреду можно утверждать, что Windows не задействует все возможные ресурсы при загрузке компьютера? Ведь в интересах разработчиков Windows сделать так, чтобы компьютер включался как можно быстрее без шаманств в настройках. Вводить ограничения глупо.
Некоторые «гении» пытаются доказать, что опция «Число процессоров» ускоряет компьютер, потому что при значении 1 игры начинают тормозить. Логики в этом аргументе нет, опровергнуть его легко. Достаточно запустить любой бенчмарк в системе до первоначальной установки галочки, с галочкой и после повторного снятия галочки. Результаты будут одинаковыми.
При включенном лимите на одно ядро производительность действительно снижается (это заметно в играх), но по умолчанию ограничения выключены и программы вольны использовать все ядра, как им вздумается. То есть опции в MSConfig работают так, как задумано — позволяют при желании пользователя ограничить производительность ПК.
К счастью, данный совет о настройках в MSConfig безвреден. Установка максимальных значений никак не влияет на работу компьютера, ведь результат тот же, что и при выключенных опциях.
Для самых непонятливых: просто снимите галочки.
Не имеет никакого значения, что там в полях — одно ядро или миллион. Не важно, что там в поле «Максимум памяти». Во что вы играете, насколько старое у вас железо — тоже не имеет никакого значения. Просто снимите все галки, нажмите ОК и живите спокойно дальше. Нет никаких тайных настроек в MSConfig для «разблокирования» процессорных ядер и памяти.
Всё ещё не верите? Проверьте производительность с помощью бесплатной утилиты CPU-Z. На вкладке Bench доступны два теста: скорость в однопоточных (Single Thread) и многопоточных (Multi Thread) вычислениях . Результаты допустимо интерпретировать как скорость работы одного ядра процессора и всех сразу соответственно.
Что с галочкой, что без на «Число процессоров» в окне «Дополнительные параметры загрузки» результат будет одинаков. Это логично, ибо в системе ничего не меняется. Если указать с установленной галкой число процессоров меньшее, чем ядер у процессора на самом деле, то результат в Multi Thread соответственно снизится, но это ожидаемо и подтверждает то, что ограничение работает так, как написано в официальной документации от Майкрософт.
Постскриптум
Уже который год в комментариях объявляются пользователи, якобы наблюдающие ускорение ПК при выполнении настроек, описанных выше. Мол, ПК включается быстрее или фризы пропадают в играх, если в MSConfig выставить ядра или что CPU Control сделала их жизнь лучше, а волосы стали гладкими и шелковистыми.
Пока что никто доказательств так и не привёл, ограничиваясь общими фразами. Посты без какой-либо конкретики я буду удалять, потому что на уровне ощущений показаться может что угодно.
Предисловие
Заблуждений, касающихся работы компьютера, предостаточно. Какие-то очень популярны, какие-то широко известны в узком кругу. Я выбрал парочку особо живучих, поддерживаемых верой тех, кто любит заниматься оптимизацией компьютера. Их опровержение не требует долгих объяснений нюансов работы операционной системы, программ и процессора. Достаточно использовать логику.
Прежде чем приступлю к описанию мифов, напишу несколько тезисов, на которые буду опираться в дальнейшем. Если вы не согласны со мной — подумайте дважды, почему. Может быть, мы с вами живём в параллельных вселенных?
Итак, вот тезисы, которые для меня являются истиной, подкреплённой фактами и знаниями. Надеюсь, после внимательного прочтения вы поймёте, к чему я веду.
Вывод
Число процессоров в msconfig никоим образом не увеличивает скорость работы компьютера и не разблокирует все ядра процессора. В операционной системе Windows они все сразу задействованы по умолчанию. Единственным назначением данной настройки является принудительное отключение ядер (потоков) для какой – то конкретной задачи и цели.