精易论坛

标题: 易语言指定进程运行CPU(CPU相关性设置) [打印本页]

作者: 7PGD    时间: 2018-4-23 12:35
标题: 易语言指定进程运行CPU(CPU相关性设置)
本帖最后由 免费刷空间人气 于 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。
因为亲测有效以及不方便贴图,所以就纯文字了


作者: 7PGD    时间: 2018-4-23 12:40
个人建议程序占用大的不要考虑这样设置
作者: asfor78    时间: 2018-4-23 12:47
感谢分享啊!
作者: 凌哥    时间: 2018-4-23 15:33
SetProcessAffinityMask 可以设置外部程序的
作者: 7PGD    时间: 2018-4-24 00:14
凌哥 发表于 2018-4-23 15:33
SetProcessAffinityMask 可以设置外部程序的

上源码或者上图都行 =-= 我自己测试了好多遍都不能成功
作者: 无人值守    时间: 2018-10-25 20:10
问一问题哈,我两个CPU,一共是88个核心,我只想用80个核心运行程序,我该怎么弄?
实测转换到十六进制之后,超出了8个F之后,就会出错,8个F才32个核心
作者: wangpeng224    时间: 2019-3-19 22:26
怎么设置?
作者: 已注销622479    时间: 2020-7-25 18:02
感谢
作者: wuwenhao    时间: 2021-2-21 22:57
可是模拟器占用CPU最大的是子进程,而非启动的主进程啊,这岂不是没辙
作者: 王者路太艰难    时间: 2021-8-4 12:29
易语言怎么设置进程可用CPU
作者: 王者路太艰难    时间: 2021-8-4 13:35
你这个运行文件可以,但是本身就是CMD命令行代码运行就不行了
作者: 易诚信    时间: 2021-8-15 01:08
wuwenhao 发表于 2021-2-21 22:57
可是模拟器占用CPU最大的是子进程,而非启动的主进程啊,这岂不是没辙

子进程和子线程该怎么搞
作者: 易诚信    时间: 2021-8-15 01:09
凌哥 发表于 2018-4-23 15:33
SetProcessAffinityMask 可以设置外部程序的

凌哥,我也是了,子线程不能设置呀,直接返回假。。
作者: quary    时间: 2023-4-29 11:08
挖坟了 牙膏厂的大小核有点恶心  就 想自己管理   
进程句柄 用[进程_打开] 返回的就可以管理其他进程了




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4