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

17750
yuritsuki

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

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

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

16
Пожалуйста, объясните, что вы подразумеваете под "ручным вводом сродства"? Pacerier 9 лет назад 0
@Pacerier Я должен вручную изменить сродство, так как по умолчанию он выбирает все процессоры для работы. yuritsuki 9 лет назад 0
Вы можете попробовать установить «Режим совместимости» для достаточно старой версии Windows, которая устанавливает привязку к одному ядру. Но у меня нет win8 под рукой, чтобы проверить, все ли это работает. CodesInChaos 9 лет назад 0
@cyberwebpoweruser, Ответ ниже работал для вас? Pacerier 9 лет назад 0

3 ответа на вопрос

21
The_aLiEn

You can create a shortcut to assign affinity.

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

Y is hexadecimal and is a bit mask:

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 
я думаю, что вы первые 3 испортили Richie Frame 9 лет назад 1
Ох, блин .. да :) Исправлено .. The_aLiEn 9 лет назад 0
@The_aLiEn вопрос: Если этот процесс запускает другой процесс, наследует ли этот второй процесс сходство первого процесса? У меня та же проблема с игрой, но мне нужно изменить привязку как на панели запуска, так и на стороннем менеджере загрузок, который запускается программой запуска, для ее решения. Nzall 9 лет назад 4
@NateKerkhofs: Да, это должно быть. Однажды я создал свою собственную оболочку start-with-affinity, которая ничего не делала, кроме установки собственной привязки, а затем породила целевое приложение. Ben Voigt 9 лет назад 0
Вам нужна часть `cmd.exe / C`, или будет достаточно, чтобы начать с` start`? deltab 9 лет назад 2
@NateKerkhofs это должно наследовать. Не только сходство, как и все дескрипторы безопасности, собственные дескрипторы и т. Д. The_aLiEn 9 лет назад 2
большое спасибо! это помогло мне изменить сродство в моей программе на C #! ihavenokia 7 лет назад 0
7
Richie Frame

If by "non software" you mean not requiring additional software, there is. You can run the program from a command script and use the affinity switch "Start /AFFINITY 20 process.exe"

/AFFINITY 20treats the 20 as a hexidecimal number, with a binary equivalent of 100000, which sets affinity to core 5 out of 0-5 on a 6 core processor. A similar hex mask will let you disable a specific core, such as E, which only runs the process on cores 1-3 out of 0-3 or 0-5.

«не программное обеспечение» означает «cmd». Pacerier 9 лет назад 0
3
Jake

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

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

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

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

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

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

Похожие вопросы