PRODUCT · SWIFT · MACOS

内存清理也应该有说得清楚的规则。

一个 macOS 菜单栏 App。它观察原生 Memory Pressure、Swap 与进程风险,在明确规则下请求长期闲置、且符合条件的后台 App 正常退出,同时保护不应该退出的 App。

SwiftmacOS 13+Universal 26 种界面语言
GreenRAM 菜单截图
GreenRAM 设置截图

01 / 产品思路

RAM 占用高,不等于系统真的有问题。

GreenRAM 先看 macOS 原生 Memory Pressure,再结合 Swap 与进程风险。Cached Files 单独作为可回收内存展示,不会因为“RAM 百分比高”就误报警。

01

原生压力优先

菜单栏健康状态优先基于 Memory Pressure,而不是把 RAM 使用率直接当作清理依据。

02

请求正常退出

清理是请求符合条件的后台 App 正常退出;不宣称“清空 Swap”,也不会动当前前台 App。

03

多进程内存统计

浏览器、Electron App、Xcode helper 等进程树,会按应用维度统计,而不是把 helper 当成完全独立的风险进程。

02 / 清理策略

三组 App,三套规则。

是否可清理来自明确分类、后台时间和内存判断,而不是模糊的 App 名称关键词。

白名单被保护的 App 永远不会退出;GreenRAM 自己和当前前台 App 也始终排除。
自动退出 App适合随用随走的小工具;只看非前台超时,RAM、Swap 与 Memory Pressure 不参与。
普通 App达到后台超时后,仍需要 MemoryDecisionEngine 允许清理,或者该 App 超过自己的内存上限。

03 / 运行

使用 SwiftPM 本地构建。

发布包是 Universal 2,同时支持 Apple Silicon 和 Intel。当前个人使用版是 ad-hoc 签名,并未经过 Apple notarization。

swift build -c release

swift run GreenRAM
当前个人使用版复制到 /Applications 后,首次启动可能需要手动移除 Gatekeeper quarantine。未来正式公开分发更适合使用 Developer ID 签名和 Apple notarization。

GreenRAM 明确不会退出这些对象

GreenRAM 自己、当前前台 App、白名单 App、还没达到后台时间阈值的 App,以及 MemoryDecisionEngine 判定健康且没有超过自身内存上限的普通 App。