如何永久设置流程的相似性?


17

我有一个游戏遇到CPU使用问题,因此解决方法之一是从四核CPU中禁用一个核。自从我每次启动游戏以来,我都必须手动进入任务管理器并手动输入亲和力,因为新发行的游戏很容易崩溃,因此很容易崩溃。

有非软件解决方案吗?

我在网上查找了一些解决方案,它们似乎仅适用于Windows 7。有针对像我这样的Windows 8.1用户的解决方案吗?


请解释一下“手动输入亲和力”是什么意思?
Pacerier

@Pacerier我必须手动更改关联,因为默认情况下它会选择要使用的所有CPU。
yuritsuki 2015年

您可以尝试将“兼容模式”设置为足够旧的Windows版本,从而将亲和性设置为单个内核。但是我没有win8来检查它是否仍然有效。
CodesInChaos

@cyberwebpoweruser,下面的答案对您有用吗?
Pacerier,2015年

Answers:


24

您可以创建快捷方式来分配相似性。

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个烂摊子
Richie Frame

哦,该死的..是的:)已更正..
The_aLiEn

4
@The_aLiEn问题:如果此进程启动另一个进程,则第二个进程是否继承第一个进程的亲和力?我在游戏中遇到同样的问题,但是我需要同时更改启动器和由启动器启动的第三方下载管理器的亲和力,才能解决该问题。
Nzall

2
您是否需要cmd.exe /C零件,或者从头开始就足够了start
2015年

2
@NateKerkhofs它应该继承。不只是亲和力,像所有的安全描述符,把手资等
The_aLiEn

7

如果用“非软件”来表示不需要其他软件,则存在。您可以从命令脚本运行程序并使用亲缘关系开关"Start /AFFINITY 20 process.exe"

/AFFINITY 2020视为十六进制数,二进制等价于100000,这将在6核处理器上的0-5中设置对5的亲和力。类似的十六进制掩码将使您禁用特定的内核,例如E,仅在0-3或0-5中的1-3内核上运行该进程。


“非软件”是指cmd
Pacerier,2015年

5

对于寻找此问题的答案却找不到任何答案的其他人,我发现的解决方案是使用一个名为WinAFC(或AffinityChanger)的应用程序。这是部分GUI,部分命令行应用程序,可让您指定某些可执行文件的配置文件,并将轮询它们的进程列表。如果找到匹配的进程,它将根据加载的配置文件中的设置更改这些进程的关联性。

这里有一些文档:http : //affinitychanger.sourceforge.net/

出于我的目的,我创建了一个如下所示的配置文件:

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

此配置文件将任何convert.exe进程设置为使用前两个CPU内核对(CPU0,CPU1,CPU2和CPU3),每秒轮询一次。TestMode是一个切换按钮,可让您查看个人资料是否正常运行,而无需实际设置亲和力。

希望有人觉得这有用!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.