[Bug][macOS] OpenBitFun 运行时 WindowServer GPU 持续偏高,撤销屏幕录制权限后下降
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 48/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- macos, rust
- 领域
- desktop, performance
调研方向
Start by tracing the macOS screen capture and Computer Use paths, then compare their capture stream lifetimes with the related WebView GPU report in issue #3585. The measurements link elevated WindowServer GPU use to OpenBitFun and show it drops after screen recording permission is revoked, but do not identify the cause. Done means reproducing the load and locating whether an idle capture stream or WebView redraw contributes.
由索引模型根据 Issue 内容生成。
描述
环境
- 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(窗口可见时 WebView 持续高 GPU;本报告的占用在隐藏窗口/显示器休眠时仍存在,且与屏幕录制权限变化相关)。
- 主要语言
- Rust
- 星标
- 2.3k
- 派生
- 236
- 平均合并
- 13 小时 23 分钟
- 30 天内合并 PR
- 335
环境准备
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
GCWing/OpenBitFun 的其他 Issue
-
[Feature]: 模型服务表单缺少「图像生成」分类入口 —— 后端已支持 default_models.image_generation可能已有人在做 @skyfireitdiy 于 20 天前认领。 未关闭
难度 2/5 半天 新手友好度 74/100
GCWing/OpenBitFun#3279 · 1 个 reaction ·
维护者通常 1 天内回复
-
[Bug] 切换会话/工作区时 manage_dialog_queue 返回 "Session is not loaded on the execution host"可能已有人在做 @Raing5Days 于 1 天前认领。 未关闭
难度 4/5 3-5 天 新手友好度 25/100
GCWing/OpenBitFun#3729 ·
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 35/100
GCWing/OpenBitFun#3728 ·
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 35/100
GCWing/OpenBitFun#3727 ·
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 8/100
GCWing/OpenBitFun#3724 · 1 条评论 ·
维护者通常 1 天内回复
查看 GCWing/OpenBitFun 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 69/100
维护者通常 1 天内回复
-
A match arm above the largest i64 is compared as 0可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭
难度 2/5 1-3 小时 新手友好度 86/100
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 83/100
DioxusLabs/dioxus#6063 ·
维护者通常 1 天内回复
-
`nsh-core` fails to compile when taffy's default `calc` feature is enabled elsewhere in the graph未关闭
难度 2/5 1-3 小时 新手友好度 76/100
longbridge/nsh#966 ·
维护者通常 1 天内回复
-
Windows docs: pin a tested ConPTY version for Kitty graphics; 1.25.260930003 corrupts large uploads未关闭
难度 1/5 1-3 小时 新手友好度 88/100
raphamorim/rio#2021 ·
维护者通常 1 天内回复