起因
玩腾讯游戏的都知道,SGuard64.exe 这玩意儿动不动就把 CPU 吃到 20%+,游戏本来就吃性能,再加上这个后台进程,帧数直接暴跌。
关掉?不行,游戏会闪退。杀进程?账号可能异常。
所以思路很简单:不关它,但把它限制住。
原理
程序做的事情不复杂:
- 每 60 秒扫一遍系统进程,找到
SGuard64.exe和SGuardSvc64.exe - 检测 CPU 有没有能效核(E-Core),有的话就用 E-Core,没有就用最后一个逻辑核心
- 把目标进程的 CPU 亲和性绑到那个核心上
- 优先级降到最低(Idle)
相当于给它画了个圈:“你就在这待着,别出来。”
循环执行是因为这些进程会自己恢复设置,所以得持续压制。
技术实现
用 Wails v2 做的桌面应用,Go 后端 + 前端 UI。选 Wails 是因为打包出来就一个 exe,不用装运行时,双击就能用。
核心逻辑都在 Go 这边,调的 Windows API:
SetProcessAffinityMask绑核SetPriorityClass降优先级- 大小核检测用的
GetLogicalProcessorInformationEx
进程名单后来改成云端下发了,这样加新的目标进程不用更新程序。
使用
下载 exe,右键管理员运行,完事。最小化挂着就行。
日志在 %AppData%\FuckYourACE\app.log,出问题可以看看。
124 个 star,说明确实解决了不少人的痛点。