问题描述
SystemMetricsProvider.currentUsedMemory 计算的是 system-wide memory pages:
active + inactive + wired + compressor
这个值代表整台 Mac 当前"被占用的内存",不是单个进程 RSS。
但 shortMemoryString(menu bar 显示)和 memorySummary(SummaryCard 显示)用的是同一个 summary.memoryUsedBytes,即 system-wide memory pressure 口径。
这两个数字与 Activity Monitor 里显示的"App Memory / Memory Used"完全不是一个概念,用户看到"70% 内存占用"但 Activity Monitor 显示完全不同会感到困惑。
预期结果
UI 显示的内存数值口径清晰,与用户认知一致。
建议方案
- 明确区分两种口径:
systemMemoryUsedBytes(当前实现)和 appMemoryUsedBytes(通过 host_process_info 获取当前 app RSS sum)
- menu bar 展示 system-wide memory pressure 是合理的(用户要的是全局占用感)
- SummaryCard 的 RAM 卡可以额外标注 "System-wide" 或 "All apps"
- 或者在 Settings 里提供切换显示模式的选项
问题描述
SystemMetricsProvider.currentUsedMemory计算的是 system-wide memory pages:这个值代表整台 Mac 当前"被占用的内存",不是单个进程 RSS。
但
shortMemoryString(menu bar 显示)和memorySummary(SummaryCard 显示)用的是同一个summary.memoryUsedBytes,即 system-wide memory pressure 口径。这两个数字与 Activity Monitor 里显示的"App Memory / Memory Used"完全不是一个概念,用户看到"70% 内存占用"但 Activity Monitor 显示完全不同会感到困惑。
预期结果
UI 显示的内存数值口径清晰,与用户认知一致。
建议方案
systemMemoryUsedBytes(当前实现)和appMemoryUsedBytes(通过host_process_info获取当前 app RSS sum)