## 环境 - OpenBitFun 1.0.8 - Mac17,9,Apple M5 Pro(16 核 GPU),48 GB 内存 - macOS 27.2(26B123) - 内置屏幕 3024×1964 @ 120 Hz(BetterDisplay 配置) ## 问题描述 OpenBitFun 运行时,全局 GPU Device Utilization 长时间约 66–73%,Activity Monitor 将大部分 GPU 使用率记在 WindowServer 上;OpenBitFun 主进程和它的图形进程自身几乎没有 GPU 使用率。 撤销 OpenBitFun 的“屏幕录制”权限并重启应用后,GPU 使用率明显下降,但仍高于完全退出应用时的基线。这表明屏幕录制权限或与其相关的路径可能参与了问题;目前尚不能确认具体是活跃的 ScreenCaptureKit 流、WebView 重绘,还是其他机制。 ## 复现与测量 同一会话、约 2 秒间隔采样: | 状态 | 样本数 | GPU Device Utilization | WindowServer CPU | |---|---:|---:|---:| | OpenBitFun 运行(退出前) | 10 | 66.7% | 43.1% | | OpenBitFun 完全退出 | 79 | 23.1% | 18.4% | | OpenBitFun 重开(撤销权限前) | 30 | 66.7% | 46.3% | | 撤销屏幕录制权限并重启后 | 8 | 30–36%(平均约 33%) | Activity Monitor 中约 48.5%* | 撤销权限后的 8 次连续 ioreg 读数为 35、36、36、32、30、31、31、31%。Activity Monitor 同期将 WindowServer GPU 显示为约 27.6%;OpenBitFun 主进程及 OpenBitFun Graphics and Media 进程显示 0% GPU,WebContent 进程也显示 0% GPU。 其他对照: - ⌘H 隐藏 OpenBitFun 窗口后,权限撤销前仍约 66–73%。 - 显示器休眠后,权限撤销前 GPU 仍会回升到约 65%。 - 关闭 ToDesk 对 GPU 使用率没有可测影响。 \* WindowServer CPU 是 Activity Monitor 当前瞬时读数;前面三组 CPU 数据来自同一轮采样口径,最后一组不是严格同口径对照。 ## 期望结果 应用空闲或不需要屏幕内容时,不应持续触发足以让 WindowServer GPU 长时间处于高位的工作;若捕获流只在特定功能期间需要,应在不再需要时停止。 ## 希望协助确认 能否检查 macOS 屏幕捕获/Computer Use 路径是否会在空闲时持续持有捕获流,或是否存在会造成类似 WindowServer GPU 负载的 WebView 重绘循环?撤销屏幕录制权限后重启使占用从约 67% 降至约 33%,但未降至完全退出应用时的约 23%,所以这应视为强相关线索,而非已确认的根因。 相关问题:[#3585](https://github.com/GCWing/OpenBitFun/issues/3585)(窗口可见时 WebView 持续高 GPU;本报告的占用在隐藏窗口/显示器休眠时仍存在,且与屏幕录制权限变化相关)。
Activity
bobleer commentedon Nov 9, 2026
启动时不会开流。 流只在 Computer Use 的观察或动作时才创建(ensure_capture)。应用启动、权限检查(CGPreflightScreenCaptureAccess,开销很小)、UI 控制卡的状态查询都不会开流。所以 issue 里"重开应用后马上回到 66.7%"这一组数据,从代码上解释不了。
实测(M4 Max,macOS 15.8.2,编译生产版 macos_capture.m 抓自建窗口)
场景 GPU 平均
静态窗口:无捕获 → 捕获中 → 停止后 5.2% → 5.3% → 4.0%
60fps 动画窗口:无捕获 → 捕获中 24.6% → 24.4%
动画窗口隐藏:捕获中 → 停止后 10.6% → 12.0%
在这台机器这个系统版本上,一路窗口捕获流带来的额外 GPU 几乎为零,停止后也正常释放。
待测试机升级macOS系统后将再尝试复现。
bobleer commentedon Nov 9, 2026
在macOS 27.2上复测,仍未复现