Большинство ПК с Windows теперь работают на многоядерных процессорах, и последние версии Windows, как правило, отлично справляются с задачей автоматического распределения общей вычислительной мощности вашего ПК, чтобы наилучшим образом приспособить ваши запущенные приложения и игры. Но иногда пользователь и Windows могут иметь разные идеи, когда речь заходит о принятии решения о том, как наилучшим образом использовать мощность процессора ПК, и именно здесь опытные пользователи могут вмешаться и вручную ограничить определенные приложения или процессы конкретными ядрами процессора, благодаря функции называется Процессор сходства . Вот как это сделать.
Когда речь идет о потребительских версиях Windows, возможность для пользователя вручную настраивать использование приложением определенных ядер ЦП восходит к временному интервалу Windows XP / 2000, хотя шаги в каждой версии Windows незначительно отличаются. Для шагов и снимков экрана мы используем Windows 10, но читатели, использующие более старые версии Windows, особенно Windows 7 и Windows 8 / 8.1, должны быть в состоянии выполнить основные шаги, несмотря на небольшие отличия от пользовательского интерфейса Windows.
Также важно отметить, что прежде чем мы продолжим, изменение привязки процессора к определенному процессу или приложению может вызвать проблемы со стабильностью и, вероятно, ухудшить производительность современных многопоточных приложений и игр. Поэтому сначала убедитесь, что вы экспериментируете с некритичными приложениями и данными, а также сохраните все открытые результаты работы или игры, прежде чем изменять какие-либо параметры, обсуждаемые здесь, поскольку возможны сбои приложения или системы.
Зачем ограничивать доступ приложения к ядрам процессора?
Как упоминалось выше, большинство пользователей хотят, чтобы Windows автоматически управляла вычислительной мощностью ПК, обеспечивая доступ к ним для приложений, которые могут использовать все ядра. Как правило, это приводит к повышению производительности, поэтому основной вопрос заключается в том, почему пользователь захочет ограничить или ограничить определенное многопоточное приложение меньшим, чем общее количество физических и логических ядер, доступных на ПК.
Есть два основных ответа на этот вопрос: 1) для обеспечения совместимости и производительности с более старым программным обеспечением, и 2) для запуска нагруженного процессором с высокой степенью загрузки, в то же время резервируя достаточно ресурсов для одновременного выполнения других задач.
Начнем с первого ответа: совместимость и производительность. Некоторые приложения и игры для Windows были написаны задолго до того, как многопоточные и многоядерные процессоры потребительского уровня стали реальностью. В частности, создатели старых игр, возможно, никогда не предполагали, что кто-то, играющий в игру, будет иметь что-то большее, чем ПК с Windows, работающий на одном высокочастотном ядре ЦП. Когда программное обеспечение этой эпохи сталкивается с современными процессорами, упаковывающими четыре, шесть, восемь или даже больше ядер, это может иногда приводить к проблемам с производительностью или даже к невозможности запуска программы вообще.
Конечно, многие приложения и игры по-прежнему работают нормально, даже если они работают на новейших 8-ядерных / 16-потоковых монстрах. Но если вы пытаетесь играть в более старую игру и у вас возникли проблемы, использование привязки к процессору, чтобы вручную ограничить процесс игры одним из ваших многочисленных ядер, может быть хорошим шагом для устранения неполадок.
Второй ответ, вероятно, более полезен для большего количества пользователей Windows, и он станет основой наших пошаговых инструкций ниже. Хотя многие приложения для Windows, особенно игры, по-прежнему не могут использовать более одного или двух ядер, приложения для создания контента, такие как видеокодеры и инструменты 3D-рендеринга, были оптимизированы в последние годы, чтобы иметь возможность использовать каждую унцию вычислительной мощности, ваш компьютер может бросить на них. Как правило, вы хотите, чтобы эти приложения работали как можно быстрее, но иногда скорость или время завершения не являются основным фактором, и вы бы предпочли оставить некоторую часть вычислительной мощности вашего ПК доступной для другой задачи, пока ваше требовательное мультимедийное приложение работает в фон. Вот где сходство процессоров действительно пригодится.
Шаг за шагом: наш пример
Одно приложение, которое может поглотить все ядра процессора, которые вы выбрасываете, - это видеокодер x264, например RipBot264 (или HandBrake, или любое из множества доступных инструментов кодирования x264 и x265). В нашем примере мы хотим, чтобы RipBot264 кодировал видеофайл, но мы также хотим одновременно работать над другими проектами в таких приложениях, как Photoshop и Premiere.
По умолчанию приложение, такое как RipBot264, будет использовать всю доступную вычислительную мощность.
Если мы запустим кодирование RipBot264, а затем запустим Photoshop и Premiere, Windows сделает все возможное, чтобы расставить приоритеты и учесть потребности каждого приложения, но Windows также иногда допускает ошибку, что приводит к замедлению или временному зависанию наших активных приложений. Мы можем попытаться избежать этого, используя привязку к процессору, чтобы ограничить использование RipBot264 наших ядер процессора.Для начала убедитесь, что вы вошли в учетную запись пользователя Windows с правами администратора. Затем запустите приложение, которое вы хотите ограничить. В нашем случае это RipBot264.
Затем запустите диспетчер задач Windows, либо щелкнув правой кнопкой мыши на панели задач и выбрав диспетчер задач, либо с помощью сочетания клавиш Ctrl-Shift-Escape . По умолчанию диспетчер задач в последних версиях Windows запускается в «базовом» виде. Если ваш Диспетчер задач не похож на тот, что на наших скриншотах, нажмите « Подробнее», чтобы открыть полный интерфейс. Как только это будет сделано, убедитесь, что вы находитесь на вкладке «Процессы» и теперь найдите свое приложение или процесс.
Этот последний шаг потенциально легче сказать, чем сделать. Во многих случаях вы просто найдете нужное приложение в списке. В других случаях некоторые приложения могут использовать уникальные процессы помимо основного процесса приложения для определенных задач. Ключ в том, чтобы найти процесс или процессы, которые отвечают за использование процессора, которое вы хотите ограничить. Хороший способ проверить это - запустить сложную операцию (в нашем случае начать кодирование видеофайла), а затем отсортировать диспетчер задач по столбцу ЦП, чтобы найти процессы, использующие ресурсы ЦП с самым высоким уровнем. Если имя процесса (опять же, в нашем случае это процесс кодера H.264) совпадает с вашим целевым приложением, все готово.
Определив правильный процесс, щелкните его правой кнопкой мыши и выберите « Перейти к деталям» . После этого вы перейдете на вкладку «Подробности» диспетчера задач и автоматически выделите правильный процесс.
Теперь снова щелкните правой кнопкой мыши по процессу и выберите Set Affinity .
Появится новое окно с надписью «Сродство к процессору», заполненное флажками и пронумерованным списком процессоров, количество которых основано на общем количестве физических и логических ядер, упакованных в ваш конкретный процессор. Наш пример системы работает под управлением Intel Core i7-5960X, который имеет восемь гиперзаходных ядер. Поэтому в нашем окне «Сродство к процессору» указано 16 процессоров.
Затем пришло время решить, насколько вы хотите ограничить свое приложение. Установите флажок « Все процессоры», чтобы отменить выбор всех блоков ЦП, а затем выберите, по крайней мере, один блок ЦП для проверки, каждый из которых представляет физическое или логическое ядро. При отсутствии каких-либо дефектов ЦП или уникальных сценариев разгона, обычно не имеет значения, какие ядра вы выберете.
В нашем примере мы хотим ограничить RipBot264 четырьмя ядрами, оставляя достаточно места для наших других, более чувствительных ко времени задач. После того, как вы выбрали желаемое количество ядер, нажмите OK, чтобы закрыть окно «Сродство процессора». Ваши изменения вступят в силу немедленно, и, если приложение уже было задействовано в задаче с большой загрузкой процессора, вы увидите, что его использование процессора резко упадет на всех, кроме выбранных вами ядер.
Как только мы настроим RipBot264 для использования только 4 из наших 16 ядер, загрузка ЦП немедленно падает на оставшихся ядрах.
С этой настройкой мы можем позволить RipBot264 кодировать как можно быстрее на этих четырех ядрах, но оставшиеся двенадцать ядер в нашей системе могут свободно обрабатывать другие приложения. Если позже мы закончим нашу другую работу и захотим восстановить полную производительность до RipBot264, мы можем просто повторить шаги, описанные выше, чтобы вернуться к окну «Процессор сходства», а затем установить флажок « Все процессоры», чтобы еще раз предоставить приложению доступ ко всем нашим ЦП. сердечники.Предостережения
В дополнение к проблемам стабильности, упомянутым ранее, есть еще одно большое предостережение, которое вы должны рассмотреть. Любые изменения, которые вы вносите в соответствие процессору, сбрасываются при каждом перезапуске этого процесса. Это означает, что, как минимум, вам придется повторять эти шаги каждый раз при перезагрузке компьютера. Однако некоторые процессы еще более проблематичны, так как они автоматически перезагружаются в зависимости от инструкций приложения. Например, в нашей настройке RipBot264 процесс кодирования H.264, который мы модифицировали, запускается каждый раз, когда приложение переходит к кодированию нового видеофайла.
Вы можете обойти это ограничение, создавая собственные сценарии, которые устанавливают привязку процессора вашего приложения через командный файл или ярлык на основе командной строки, но некоторые приложения могут использовать уникальные или случайные процессы, которые делают такие усилия трудными или невозможными. Поэтому лучше всего поэкспериментировать с каждым приложением, которое вы хотите ограничить, чтобы найти лучший способ вручную настроить привязку процессора.