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

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

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

Существует ли НЕ ПРОГРАММНОЕ решение?

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

решение1

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

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

решение2

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

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

решение3

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

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

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

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

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

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

решение4

Я новичок здесь и впервые пишу на этом форуме, но в любом случае я создал эту таблицу, которая делает ее гораздо более понятной, просто введите шестнадцатеричное значение Y в командной строке, чтобы включить количество потоков ЦП. Наслаждайтесь!

CPU - HEX  - BINARY
00 -- 1 ---- 0001
01 -- 3 ---- 0011
02 -- 7 ---- 0111
03 -- F ---- 1111
04 -- 1F --- 0001 1111
05 -- 3F --- 0011 1111
06 -- 7F --- 0111 1111
07 -- FF --- 1111 1111
08 -- 1FF -- 0001 1111 1111
09 -- 3FF -- 0011 1111 1111
10 -- 7FF -- 0111 1111 1111
11 -- FFF -- 1111 1111 1111
12 -- 1FFF - 0001 1111 1111 1111
13 -- 3FFF - 0011 1111 1111 1111
14 -- 7FFF - 0111 1111 1111 1111
15 -- FFFF - 1111 1111 1111 1111

%ComSpec% /c start /affinity Y game.exe

Связанный контент