Как мне навсегда установить сродство процесса?


17

У меня есть игра, которая имеет проблемы с загрузкой процессора, поэтому одним из исправлений является отключение одного ядра из четырехъядерного процессора. Так как каждый раз, когда я запускаю игру, мне приходится вручную заходить в диспетчер задач и вручную вводить сходство, которое отстой, так как игра только что вышла, но подвержена частым сбоям.

Есть ли НЕ ПРОГРАММНОЕ решение?

Я посмотрел некоторые решения онлайн, и они, похоже, ориентированы только на Windows 7. Есть ли решение для пользователей Windows 8.1, таких как я?


Пожалуйста, объясните, что вы подразумеваете под "ручным вводом сродства"?
— Pacerier

@Pacerier Мне нужно вручную изменить сродство, так как по умолчанию он выбирает все процессоры для работы.
— Юрицуки

Вы можете попробовать установить «Режим совместимости» для достаточно старой версии Windows, которая устанавливает привязку к одному ядру. Но у меня нет win8 под рукой, чтобы проверить, все ли это работает.
— CodesInChaos

@cyberwebpoweruser, у вас сработал ответ ниже?
— Пейсер

Ответы:


23

Вы можете создать ярлык для назначения сходства.

X:\Windows\System32\cmd.exe /C start /affinity Y game.exe

Y является шестнадцатеричным и немного битовой маской:

0x1 - 0001 - Core0
0x2 - 0010 - Core1
0x3 - 0011 - Core1 & Core0
0x4 - 0100 - Core2
0x5 - 0101 - Core2 & Core0
0x6 - 0110 - Core2 & Core1
0x7 - 0111 - Core2 & Core1 & Core0
0x8 - 1000 - Core3
0x9 - 1001 - Core3 & Core0
0xA - 1010 - Core3 & Core1
0xB - 1011 - Core3 & Core1 & Core0
0xC - 1100 - Core3 & Core2
0xD - 1101 - Core3 & Core2 & Core0
0xE - 1110 - Core3 & Core2 & Core1
0xF - 1111 - Core3 & Core2 & Core1 & Core0

1
я думаю, что у вас есть первые 3 испорчены
— Ричи Фрейм

О, черт .. да :) Исправлено ..
— The_aLiEn

4
@The_aLiEn вопрос: Если этот процесс запускает другой процесс, наследует ли этот второй процесс сходство первого процесса? У меня та же проблема с игрой, но мне нужно изменить привязку как на панели запуска, так и на стороннем менеджере загрузок, который запускается программой запуска, для ее решения.
— Nzall

2
Вам нужна cmd.exe /Cчасть, или этого будет достаточно для начала start?
— Deltab

2
@NateKerkhofs это должно наследовать. Не только сходство, как и все дескрипторы безопасности, принадлежащие им дескрипторы и т. Д.
— The_aLiEn

7

Если под «не программным обеспечением» вы подразумеваете, что вам не нужно дополнительное программное обеспечение, это так. Вы можете запустить программу из командного скрипта и использовать переключатель сродства"Start /AFFINITY 20 process.exe"

/AFFINITY 20обрабатывает 20как шестнадцатеричное число с двоичным эквивалентом 100000, который устанавливает сродство к ядру 5 из 0-5 на 6-ядерном процессоре. Подобная шестнадцатеричная маска позволит вам отключить определенное ядро, например E, которое запускает процесс только на ядрах 1-3 из 0-3 или 0-5.


«не программный» означает cmd.
— Пейсер

5

Для тех, кто ищет ответы на эти вопросы и не находит их, решение, которое я нашел, состояло в том, чтобы использовать приложение под названием WinAFC (или AffinityChanger). Это частичный графический интерфейс, частичное приложение командной строки, которое позволяет вам задавать профили для определенных исполняемых файлов и опрашивать список процессов для них. Если он находит совпадающие процессы, он изменит сходство этих процессов в соответствии с настройками в загруженном профиле.

Здесь есть некоторая документация: http://affinitychanger.sourceforge.net/

Для моих целей я создал профиль, который выглядел так:

TestMode = 0
TimeInterval = 1
*\convert.exe := PAIR0+PAIR1

Этот профиль устанавливает любой процесс convert.exe для использования первых двух пар ядер ЦП (CPU0, CPU1, CPU2 и CPU3), опрашивая каждую секунду. TestModeэто переключатель, который позволяет вам видеть, работает ли ваш профиль без фактической установки сходства.

Надеюсь, кто-то найдет это полезным!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.