我有一个我正在尝试使用的程序经常崩溃,其中一个修复是将其设置为仅使用一个处理器。 我可以通过任务管理器手动轻松完成此操作,但我更喜欢双击快捷方式的解决方案。
我尝试使用以下代码行创建.bat文件: C:\ Windows \ System32 \ cmd.exe / C start / affinity 1 KSP.exe
然而,它只是拒绝运行。删除/ C开关仅启动cmdbox。
尝试键入/关联1 KSP.exe进入cmdbox(谢天谢地,cmdbox以.bat文件所在的目录开头,该文件夹与.exe相同,因此没有问题)只是出现此错误:
无效的开关 - “/ affinity”。
答案 0 :(得分:1)
我在尝试在较旧的Win XP 32位装备上运行KSP时遇到了同样的问题。在Vista,IIRC之前,cmd.exe没有收到/ affinity开关。
我意识到OP已经超过一年了,但对于一些用户来说,它仍然是一个问题。解决方案是使用来自Sysinternals的psexec.exe代替cmd.exe,可在此处找到:
http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
微软的Sysinternal的psexec -a标志可以在Windows XP上设置处理器关联:
Usage: psexec [\\computer[,computer2[,...] | @file][-u user [-p psswd]][-n s][-l][-s|-e][-x][-i
[session]][-c [-f|-v]][-w directory][-d][-][-a n,n,...] cmd [arguments]
-a Separate processors on which the application can run with
commas where 1 is the lowest numbered CPU. For example,
to run the application on CPU 2 and CPU 4, enter:
"-a 2,4"
例如:
psexec -a 2 cmd /c "E:Games\KSP\KSP.exe"
将在第二个核心上运行KSP。 (任务管理器中的核心1)
只需更正系统的路径,然后将其放在.bat或快捷方式的Target字段中。
另外,您需要将PsTools(或简称PsExec.exe)解压缩到C:\ Windows或系统路径中的其他文件夹,或将其放入KSP根目录。
答案 1 :(得分:0)
首先请注意,您必须为您的程序提供管理员权限,可以是右侧clic,也可以是sart作为管理员,或者通过创建任务。
因此,在您使用这些管理员权限启动cmd后,您可以通过以下方式启动您的程序:
<code>`start /AFFINITY 1 /B notepad.exe`</code>
使用procexp,并在记事本进程上右击+ set affinity,您将看到它只使用处理器0。
这样做的:
<code>`start /AFFINITY 1 /B notepad.exe`</code>
你会看到它在处理器2上运行。
然后,如果您希望您的进程在核心的一半上运行?
这样做:
<code>`start /AFFINITY AA /B notepad.exe`</code>
在octo核心上,它将在处理器1,3,5,7上运行
问候。