|
本帖最后由 免费刷空间人气 于 2018-4-23 12:38 编辑
本人在写游戏多开脚本,期间想到将多开的游戏进程均匀分配到所有的CPU上,用以降低CPU占用率及故障率,然后就开始了长达一个星期的查找资料+提问,都没能找到正确的方法。
根据测试,SetProcessAffinityMask(分配进程到指定CPU)似乎只适用与自身进程,做不到分配外部程序的CPU。后来,我在网上看到了《在Windows 7上使用start / AFFINITY命令设置关联性》。此后再无疑惑,一片坦途。今天把这个设置进程CPU相关性的教程分享给大家,也算回馈一下精易论坛这么好的一个交流平台。
系统_取DOS执行结果 (“start /affinity ” + 进制_十到十六 (分配双核) + “ ” + _启动窗口.游戏路径.内容 + “\stup.exe” )
给大家解释一下命令。因为程序相关性需要运行程序时就开始设置,所以运行命令的同时会启动程序,start /affinity 是主要命令,进制_十到十六 (分配双核)是你想要分配的核心数,如果直接十进制或者十六进制去看的话很抽象,未必能看懂是什么意思,但是如果转化为二进制的话,假设我们的CPU有4个核心,二进制(0001) 表示指定这个程序在第一个CPU上运行,我们要把它转为十六进制才不会出错。
示例:
系统_取DOS执行结果 (“start /affinity ” + 进制_十到十六 (进制_二到十(0001)) + “ ” + _启动窗口.游戏路径.内容 + “\stup.exe” )在第一个CPU上运行
系统_取DOS执行结果 (“start /affinity ” + 进制_十到十六 (进制_二到十(0010)) + “ ” + _启动窗口.游戏路径.内容 + “\stup.exe” )在第二个CPU上运行
系统_取DOS执行结果 (“start /affinity ” + 进制_十到十六 (进制_二到十(0011)) + “ ” + _启动窗口.游戏路径.内容 + “\stup.exe” )在第一个和第二个CPU上运行
实际运用效果可以在任务管理器-进程-右键设置相关性看到设置好的CPU。
因为亲测有效以及不方便贴图,所以就纯文字了
|
|