【免费下载链接】SiliconScope
Sudoless Apple Silicon system monitor (native SwiftUI GUI) with ANE / Media Engine / memory-bandwidth tracking
SiliconScope 是一款无需 sudo 的 Apple Silicon 系统监控工具,用原生 SwiftUI 仪表盘把活动监视器看不到的指标——E/P 核拆分、Neural Engine(ANE)、内存带宽、内存压力——全部摊开给你看。如果你想知道"我的 Mac 芯片此刻到底在忙什么",这篇指南会带你逐张读懂仪表盘上的每个数字。
上面这张图就是 SiliconScope 的完整面貌:左边是主仪表盘,右边是菜单栏里的"SS 驾驶舱"下拉面板。整个界面遵循一个设计原则——只有需要留意的地方才上色,其余一律中性色,所以你的眼睛会第一时间被红色、橙色等警示色吸引。下面按卡片逐一拆解。
仪表盘从上到下的卡片布局
打开主窗口(源码入口在 Sources/SiliconScope/DashboardView.swift),你会看到这样的顺序:
- 顶栏 Header:芯片型号、核心数、SoC 总功耗、电池
- AI Workload:负载瓶颈分类器(全文最"聪明"的一张卡)
- CPU 卡(E/P 核拆分)与GPU / Media / Neural Engine 卡
- Memory & Bandwidth 卡(内存压力 + 内存带宽)
- Network & Disk 卡
- Sensors 卡(温度、风扇、热压力)
- Processes 卡(进程表,可点击检查)
这张实拍截图来自一台 M1 Max 正在跑端侧 AI 模型:顶部判定为Bandwidth-bound(带宽受限),GPU 100%、36 W,内存带宽 306 GB/s 逼近芯片 400 GB/s 的上限——一眼就能定位"卡在哪"。
AI Workload 卡:你的负载现在卡在哪儿?
这张卡回答一个问题:"我的本地 LLM / AI 任务现在被什么限制着?"它给出五种判定之一(优先级:内存 > 散热 > 负载画像):
| 判定 | 含义 |
|---|---|
| Bandwidth-bound | 内存带宽逼近芯片上限而 GPU 没跑满——典型的大模型逐 token 生成状态 |
| Compute-bound | GPU 已饱和、带宽还有富余——典型的首次推理(prompt)阶段 |
| Thermal-throttled | 过热导致 GPU 频率被压住,持续性能受限 |
| Memory-pressured | 统一内存吃紧,swap 开始拖累吞吐 |
| GPU active / Idle | GPU 在忙但没有单一瓶颈 / 基本空闲 |
除了判定本身,还会显示"带宽上限占比"进度条(例如312 / 400 GB/s · 78%)和**"最可能的引擎"**——GPU 高而 ANE 低就是GPU/Metal (LLM-style),ANE 高则是ANE (CoreML-style)。这背后是 Sources/SiliconScopeCore/Bottleneck.swift 里的分类逻辑,对照的是每款芯片标称的统一内存带宽表。
💡 对普通用户最实用的读法:Bandwidth-bound 说明"换个带宽更大的芯片(Pro/Max 系列)才能更快",Thermal-throttled 说明"风道/环境温度是瓶颈"。判定设计文档见 docs/display-spec.md。
CPU 卡:E 核与 P 核的拆分
Apple Silicon 采用大小核架构,活动监视器只给你一个混合百分比。SiliconScope 的 CPU 卡把它拆开成两行:
- E-cores(能效核):使用率 + 实时频率(MHz),琥珀色
- P-cores(性能核):使用率 + 实时频率,蓝色
关键在于频率是真实 DVFS 频率,不是芯片标称最高值:它用 IOReport 里"各 DVFS 档位驻留时间"加权算出这个簇实际运行在的 MHz。当热压力把 P 核频率压在天花板以下时,卡片边框会变红,并多出一行P ceiling,直接显示当前 / 最高 MHz · −x% (thermal)——这是判断"我的 Mac 正在降频"最直观的依据。
核心数据结构见 Sources/SiliconScopeCore/CPUSample.swift,芯片拓扑(几 E 几 P)来自 Sources/SiliconScopeCore/CPUTopology.swift。
GPU / Media / Neural Engine 卡:四个引擎各忙各的
这是与一般监控工具差距最大的一张卡,四根条各代表一个引擎:
- GPU(绿色):使用率 + 功耗(W)+ 频率
- GPU memory(青色):显存占用 GB 数
- ANE(紫色):Neural Engine 活跃度。有驻留率通道的机型显示的是实测的簇驻留占比;没有的机型退回功耗估算并标注
est. - Media(橙色):媒体编解码引擎的带宽(GB/s)
ANE 这根条尤其值得看:跑本地 LLM 时它基本不动(那类负载走 GPU + Metal),而 Core ML 类应用(AI 修图、语音识别、字幕生成)会把 ANE 点亮。这种"哪个引擎在工作"的对比,正是判断工作负载类型的信号。
这张图是一个有趣的应用场景:4.0 版本之后,通过 Fleet 功能,你在另一台 Mac 上打开的远程 Mac 仪表盘和本机长得一模一样——同样是 E/P 核拆分(4E+4P)、同样的 ANE 卡、同样的内存四段构成,只是传感器一栏如实显示fanless而不编造读数。
Memory & Bandwidth 卡:内存压力到底怎么读
这张卡左右分栏,左边是内存,右边是带宽,合在一起回答"统一内存体系健不健康"。
左栏:四段堆叠条
| 颜色 | 含义 | 普通用户读法 |
|---|---|---|
| Wired | 被系统/驱动锁定的内存 | 含 Metal/GPU 分配,跑本地大模型时它会明显上涨 |
| Active | 正在使用的内存 | 应用实际占用的主体 |
| Compressed | 被压缩存储的内存 | 越高说明系统在"挤内存" |
| Free | 空闲 | 有缓存兜底,为 0 不代表卡 |
下方的Pressure条是 macOS 内核的内存压力等级(normal / elevated / critical),对应绿色、琥珀色、红色——压力升级时卡片边框会跟着变色,不用盯数字。相关字段定义见 Sources/SiliconScopeCore/MemorySample.swift。
⚠️ 一个常见误区:Mac 的"内存占用 90%"本身不危险(缓存会回收),危险信号是压力条变红 + 换页(swap)速率上升,那才代表应用开始变慢。
右栏:内存带宽(GB/s)
分CPU / GPU / Media / Other与Total各行显示实时带宽。对本地 LLM 用户,Total 这一行就是"性能天花板表":它离你芯片的理论上限越近,说明任务越"带宽受限"(与 AI Workload 卡互相印证)。带宽通道的来源清单见 docs/ioreport-channels.md。
传感器卡与进程卡:温度和"谁在闹"
Sensors 卡按部件列出温度:真正的E-Core / P-Core / GPU / Memory传感器读数(M1–M5 按芯片代际精选 SMC 键读取,其他机型回退 HID),外加风扇转速、热压力(nominal/fair/warning/critical)。无风扇机型会显示fanless。当 GPU 在热压力下频率被压在滚动峰值以下,会触发GPU 降频检测并把 GPU 卡边框标红。
Processes 卡支持按 CPU/内存排序、按名称过滤、直接结束进程,而且点击任意进程可打开检查器——这是 3.0 引入的杀手级功能:
检查器能显示活动监视器给不出的四样东西:CPU(P/E 拆分)、IPC(每周期指令数)、进程级功耗(W)、磁盘速率,以及全市场独一份的——逐进程 Neural Engine 内存。上图右栏那个正在生成字幕的进程占用了 762 MB ANE 内存,一眼定位"谁在用神经引擎"。检查器 UI 源码见 Sources/SiliconScope/InspectorView.swift。
收尾三件套:录制回放、菜单栏、颜色纪律
最后提三个让仪表盘"好用"的机制:
- ⏺ Record & Replay:所有指标持续写入
.ssrec文件,事后可以像录像机一样播放 / 暂停 / 拖动 / 倍速回看整个仪表盘,抓住你回头时才想起的峰值。数据全部留在本机,格式定义见 Sources/SiliconScopeCore/RecordingFormat.swift。 - 菜单栏组件:CPU / GPU / Memory / Network / SSD / Sensors / Battery 每张卡都能单独固定到菜单栏,各自可选显示样式(条形、历史曲线、双行、单值、图标),另有一个综合的 "SS" 驾驶舱图标一屏看全。
- 颜色纪律:整块仪表盘默认中性色,红色只留给"温度超 90 °C、内存压力 critical、GPU 降频"这类真需要你注意的状态,避免警报疲劳。
小结:一分钟速查表
| 你看到… | 说明… |
|---|---|
| AI Workload 显示Bandwidth-bound | 任务卡在内存带宽,换更大内存带宽的芯片才有效 |
| Thermal-throttled+ 红框 GPU 卡 | 过热降频,检查散热环境 |
| 内存Pressure 变红 | 统一内存吃紧,关大内存应用或换页正在发生 |
| P ceiling行出现 | P 核被热压力压频,持续性能打折 |
| ANE 条亮、GPU 暗 | Core ML 类 AI 任务在神经引擎上跑 |
| Wired 段快速上涨 | GPU/Metal 分配在增长(本地模型加载的典型特征) |
SiliconScope 全部指标无需 sudo即可读取,要求 macOS 14+ 与 Apple Silicon,用 Homebrew 一条命令即可安装(brew install --cask siliconscope)。把它和 README.zh-CN.md 里的功能清单配合读,基本就能把仪表盘上的每个数字都用起来。
【免费下载链接】SiliconScope
Sudoless Apple Silicon system monitor (native SwiftUI GUI) with ANE / Media Engine / memory-bandwidth tracking
相关推荐
Orchard仪表盘与实时资源监控:CPU、内存、网络、磁盘图表全解读
Orchard仪表盘与实时资源监控:CPU、内存、网络、磁盘图表全解读 Orchard 是 Apple Containers 与 o MLX 沙箱的原生应用(D
10分钟读懂Claude-Code-Agent-Monitor:为什么每个AI程序员都需要一个Agent实时监控仪表盘?
10分钟读懂Claude Code Agent Monitor:为什么每个AI程序员都需要一个Agent实时监控仪表盘? 如果你每天都在用 Claude Cod
ScyllaDB nodetool tablestats 输出全解:读懂每个统计字段,定位表级性能与存储问题
ScyllaDB nodetool tablestats 输出全解:读懂每个统计字段,定位表级性能与存储问题 本文以 ScyllaDB 官方 nodetool
数据库分布式数据库后端大数据
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考