开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 9061|回复: 13
收起左侧

[图文资料] 易语言指定进程运行CPU(CPU相关性设置)

[复制链接]
结帖率:100% (21/21)
发表于 2018-4-23 12:35:58 | 显示全部楼层 |阅读模式   福建省泉州市
本帖最后由 免费刷空间人气 于 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。
因为亲测有效以及不方便贴图,所以就纯文字了


签到天数: 18 天

发表于 2023-4-29 11:08:16 | 显示全部楼层   河南省焦作市
挖坟了 牙膏厂的大小核有点恶心  就 想自己管理   
进程句柄 用[进程_打开] 返回的就可以管理其他进程了
回复 支持 反对

使用道具 举报

结帖率:67% (6/9)
发表于 2021-8-15 01:09:13 | 显示全部楼层   河北省唐山市
凌哥 发表于 2018-4-23 15:33
SetProcessAffinityMask 可以设置外部程序的

凌哥,我也是了,子线程不能设置呀,直接返回假。。
回复 支持 反对

使用道具 举报

结帖率:67% (6/9)
发表于 2021-8-15 01:08:20 | 显示全部楼层   河北省唐山市
wuwenhao 发表于 2021-2-21 22:57
可是模拟器占用CPU最大的是子进程,而非启动的主进程啊,这岂不是没辙

子进程和子线程该怎么搞
回复 支持 反对

使用道具 举报

结帖率:93% (70/75)
发表于 2021-8-4 13:35:40 | 显示全部楼层   河北省唐山市
你这个运行文件可以,但是本身就是CMD命令行代码运行就不行了
回复 支持 反对

使用道具 举报

结帖率:93% (70/75)
发表于 2021-8-4 12:29:07 | 显示全部楼层   河北省唐山市
易语言怎么设置进程可用CPU
回复 支持 反对

使用道具 举报

结帖率:92% (65/71)

签到天数: 18 天

发表于 2021-2-21 22:57:23 | 显示全部楼层   湖南省岳阳市
可是模拟器占用CPU最大的是子进程,而非启动的主进程啊,这岂不是没辙
回复 支持 反对

使用道具 举报

发表于 2020-7-25 18:02:43 | 显示全部楼层   吉林省长春市
感谢
回复 支持 反对

使用道具 举报

结帖率:29% (2/7)

签到天数: 16 天

发表于 2019-3-19 22:26:37 | 显示全部楼层   湖北省宜昌市
怎么设置?
回复 支持 反对

使用道具 举报

结帖率:0% (0/2)
发表于 2018-10-25 20:10:13 | 显示全部楼层   广东省中山市
问一问题哈,我两个CPU,一共是88个核心,我只想用80个核心运行程序,我该怎么弄?
实测转换到十六进制之后,超出了8个F之后,就会出错,8个F才32个核心
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表