技术深度解析
Stats 采用模块化的 Swift 架构构建,将数据采集与呈现分离。核心引擎 `SystemKit` 是一个独立的 Swift 包,可复用于其他项目。它通过 IOKit 与硬件传感器通信、通过 `sysctl` 获取内核统计信息、通过 `CoreGraphics` 获取显示信息。
架构概览:
- 传感器读取器: 针对 Intel 和 Apple Silicon(M1/M2/M3)芯片分别设有独立类。例如,`AppleSiliconSMC` 读取器使用 AppleSMC 驱动访问温度和功耗数据,而 Intel 读取器则采用传统的 `SMCSuperIO` 方式。
- 数据聚合: 中央 `StatsService` 以可配置的间隔(默认 CPU 1 秒,网络 2 秒)轮询每个传感器。数据存储在环形缓冲区中,用于计算平均值和峰值。
- UI 层: SwiftUI 视图渲染菜单栏项目。每个模块(CPU、内存、磁盘、网络、传感器、电池、时钟)都是一个独立的 SwiftUI 视图,并配有专属偏好设置面板。
- 性能: 该应用设计为极低 CPU 占用——在 Apple Silicon 上闲置时通常为 0.2–0.5%,启用所有模块进行主动监控时低于 2%。
关键技术选择:
- 无 Electron: 与许多跨平台系统工具不同,Stats 是原生 macOS 应用。这确保了低内存占用(通常 30–50 MB)和原生的菜单栏集成。
- SwiftUI 优先于 AppKit: 偏好设置窗口使用 SwiftUI 以实现快速开发和现代布局,而菜单栏项目仍依赖 `NSStatusItem` 以确保兼容性。
- 开源许可: MIT 许可允许商业使用,这催生了像 `StatsPlus` 这样的 Fork,增加了额外功能。
基准测试数据:
| 指标 | Stats | iStat Menus 6 | MenuBar Stats 3 |
|---|---|---|---|
| 内存占用(闲置) | 35 MB | 85 MB | 60 MB |
| CPU 占用(闲置) | 0.3% | 0.8% | 0.5% |
| CPU 占用(活跃) | 1.8% | 3.2% | 2.5% |
| 启动时间 | 0.8s | 1.5s | 1.2s |
| 模块数量 | 8 | 12 | 10 |
| 价格 | 免费 | $11.99 | $9.99 |
| 开源 | 是 | 否 | 否 |
| 隐私(无遥测) | 是 | 否(可选) | 否(可选) |
数据要点: Stats 在资源占用和隐私方面优于商业替代品,同时提供可比的模块覆盖范围。代价是预设主题较少且无远程监控功能,但对于本地系统观测而言,它是最精简的选择。
关键参与者与案例研究
开发者:exelban (Serhiy)
- 一位乌克兰开发者,于 2019 年将 Stats 作为个人项目启动,旨在替代其 MacBook 上的 iStat Menus。
- 独自维护该项目,偶尔接收社区贡献。已有超过 100 位贡献者提交了 Pull Request。
- 还维护着 `MonitorControl`(另一款流行的 macOS 外接显示器亮度调节工具)和 `Itsycal`(菜单栏日历)。
案例研究:Apple Silicon 采用
当 Apple 于 2020 年从 Intel 转向 Apple Silicon 时,许多系统监控工具因依赖 Intel 专属的 SMC(系统管理控制器)调用而失效。Stats 是首批添加原生 Apple Silicon 支持的开源工具之一,它使用了适用于两种架构的 `AppleSMC` 驱动和 `IOKit` 调用。这种早期兼容性推动了采用率的显著飙升——从 2020 年底的 5,000 颗星标增长到 2021 年中期的 20,000 颗以上。
竞争格局:
| 产品 | 开发者 | 价格 | 关键差异化优势 |
|---|---|---|---|
| Stats | exelban | 免费 | 开源、轻量、无遥测 |
| iStat Menus | Bjango | $11.99 | 丰富 UI、远程监控、历史图表 |
| MenuBar Stats | Adi | $9.99 | 紧凑设计、通知中心小部件 |
| XRG | Gaucho Software | 免费 | 历史数据记录、网络图表 |
| Monity | Tweakbit | $4.99 | 简洁的单窗口设计 |
数据要点: Stats 占据了一个独特的位置:它是唯一一个完全开源、隐私优先且保持活跃开发的选择。其 40K+ 星标表明社区信任度极高,这是商业工具无法复制的。
行业影响与市场动态
开源系统工具的崛起
Stats 是用户抛弃付费工具、转向开源替代品这一更广泛趋势的一部分。macOS 生态系统中也出现了类似的转变:
- AlDente(电池充电限制器) vs. 专有电池管理
- Rectangle(窗口管理器) vs. Magnet($4.99)
- Hidden Bar(菜单栏整理器) vs. Bartender($18)
市场数据:
| 年份 | macOS 用户(百万) | 开源系统工具采用率 | Stats GitHub 星标数 |
|---|---|---|---|
| 2020 | 100 | 15% | 5,000 |
| 2021 | 110 | 22% | 20,000 |
| 2022 | 120 | 30% | 30,000 |
| 2023 | 130 | 38% | 37,000 |
| 2024(预估) | 140 | 45% | 45,000+ |
数据要点: 开源系统工具的采用率每年增长 5–7%,这得益于隐私担忧和定制化需求。Stats 是该类别中的旗舰项目。
经济影响:
- Bjango(iStat Menus 开发商)的新购买量已下降 15%