侧边栏壁纸
博主头像
HHShare 博主等级

行动起来,活在当下

  • 累计撰写 256 篇文章
  • 累计创建 36 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

不用 sudo 也能盯住 M 芯片:macmon 0.10 加了进程列表

晖晖分享
2026-10-17 / 0 评论 / 0 点赞 / 0 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我删除。

macmon 是 Mac 上的芯片监控工具,免费开源,不用 sudo。Rust 写的命令行程序,只认 Apple Silicon,从 M1 支持到 M6。

0.10.0 版 10 月 14 日发布,装起来一条命令:brew install macmon。

它盯的是芯片本身:CPU、GPU 和神经网络引擎(ANE)的实时功耗、三档核心的频率与占用、内存和交换分区、风扇转速和温度。

作者仓库里的界面截图(截图停在 0.9 版,0.10 的界面改动见后)

功能:功耗、温度、进程,一个窗口全摆下

顶上一排数据盒,CPU、GPU、ANE 各自吃了多少瓦,系统总功耗、内存功耗、GPU 显存功耗分开列。

powermetrics 也能给你这些数,前提是先 sudo;macmon 不用。

频率和占用按核心档位给。能效核、性能核各自跑在多少兆赫,active_ratio 说的是这段时间里有多大比例在干活。

scaled_ratio 再把频率折算进去:同一个占用比例,跑在低频和跑在高频不是一个意思。

Apple 到 M6 把核心分成了三档,macmon 0.10 跟上的是这个。

内存和交换分区各占多少,风扇当前转速和上限是多少,powermetrics 能给的那几项都没落下。

底部是进程列表,每个进程的 CPU、内存、功耗和 GPU 占用都列出来。

0.10 新加了一列 TIME,可以点着排序,专门用来找吃 CPU 时间最多的那个。

键盘操作是这一版扩得最狠的地方。按 i 弹出信息浮层,选中进程的工作目录、打开的文件和套接字逐条列出来,按类型分组,还能再筛。

按 k 结束进程,Terminate 和 Force kill 两档,动手前会先问一次。按 e 在访达里定位,按 c 复制路径。

过滤走 / 键:逗号分隔多个词,词前加个 ! 就是排除,每个词后面还跟一行合计;记不住按键就按 ?,整张表都在。

三种用法:界面、JSON 管道、HTTP 端点

除了看界面,还有三种用法。macmon pipe 把每次采样打成 JSON 吐到标准输出,管进 jq 就能接脚本。

加 -s 10 取十次、-i 500 把间隔压到半秒,够写个一次性探针。

macmon serve 换个活法,在本机起个 HTTP 服务,9090 端口上给两个端点。

/json 给当前快照,/metrics 按 Prometheus 的文本格式给全套指标。

想让它常驻就加 --install,会在 ~/Library/LaunchAgents 里建一个代理,登录自启、崩溃重启,plist 不用自己写。

另有一个 macmon stress,分 pulse、cpu、gpu、all 四种模式往芯片上压负载,拿来验证读数对不对。

优势:不装 sudo 就看得见,还能按进程算功耗

同类工具里,不装 sudo 是 macmon 最硬的一条。

powermetrics 是苹果自带的读数工具,每回都得先输密码。asitop、pumas 这些仿写的路数,根子都扎在 powermetrics 上,所以绕不开 sudo。

macmon 换了条路,直接去读 IOReport 里的隐藏能耗报告。

第二条是接口。管道吐 JSON、HTTP 端点吐 Prometheus,这两件事把它从「看一眼」变成「接得进监控面板」。

以前想给 Grafana 喂 Mac 的功耗,得自己写脚本去解析 powermetrics 那堆文本。

第三条是进程。macmon 能给出单个进程吃了多少功耗,htop、btop 这类通用进程查看器给不了。

编译时偷偷多吃的瓦数,最后都由电池和风扇买单,这笔账只有它算得清。

适合的人:常跑本地模型推理或大型编译,想知道芯片此刻到底吃了多少瓦。

还有想把 Mac 的功耗接进 Prometheus 和 Grafana 的台子,以及单纯不想给一个看温度的工具开 root 的。

不适合的有三个方向。想要菜单栏图标和图形界面的,macmon 只在终端里待着,serve 能自启但只给 HTTP。

想手动调风扇转速的,它只读不写,mactop 才带这个。想看磁盘和网络吞吐的,它也不管。

对比:和 mactop、asitop、NeoAsitop 摆一起看

先看要不要 sudo

macmon mactop asitop NeoAsitop
需要 sudo 不用 不用 要 不用
语言 Rust Go Python Swift
进程列表 有 有 没有 没有
结束进程 有,k 键 有,F9 键 没有 没有
数据接口 JSON + Prometheus JSON/CSV + Prometheus 没有 没有
最近更新 2026-10-14 2026-09-30 2024-04 2024-07
安装 brew install macmon brew install mactop pip install asitop 下载 release

真正的对手是 mactop。两个都不用 sudo,都带进程列表,都能结束进程,也都能吐 Prometheus。

差别在取向。mactop 铺得宽,22 种布局、全线温度传感器、Thunderbolt 带宽、网络与磁盘读数、风扇控制,活像个终端版的活动监视器。

写风扇那一步还是要 root,其余的都不需要。

macmon 收得窄,只盯芯片功耗和进程,界面朴素,依赖也少,和同类拉开了差距。

asitop 是这一脉的原点,Python 写的,当年很红,可仓库停在 2024 年 4 月。

README 上还写着只在 macOS Monterey 上工作,后来的系统一概没测。

NeoAsitop 拿 Swift 重写了一遍,同样不用 sudo,但测试机型只到 M1,2024 年 7 月之后再没动过。

一句话选型:只要芯片功耗、要最少的依赖和最好接出去的接口,选 macmon。

要传感器全、要调风扇、要能摆一屏花活,选 mactop;后两个当历史参照就行。

资料补充:macOS 27 换了读数来源,它是自己摸出来的

同样是功耗,读法不一样了

macOS 27 动了 CPU 和 ANE 的功耗读数。以前那条通道变得看得见、却不刷新。

想让它继续刷新就得要苹果签名的私有授权。苹果自家的 powermetrics 有这个授权,所以照样能用;macmon 拿不到,加 sudo 也拿不到。

作者的解法是从 AppleCLPC 驱动里翻出隐藏的能耗报告。

这些报告只给不透明的编号,不带 CPU、GPU、ANE 的名字,计数器和单位只能靠人工一件件对上。

换句话说,macmon 手里维护着一份苹果没公开的映射表,换新芯片时可能还得再补。

项目 2024 年 6 月建仓,MIT 协议,现在 1993 star。

0.10 这一版顺手把界面自身的 CPU 占用砍了一半,在虚拟机里跑则自动藏掉读不到的功耗和频率。

v0.10.0 加了什么

仓里另有一份 Rust 库的用法。想在自己的程序里采这些数,可以 cargo add macmon --no-default-features,示例见 examples/demo.rs。

在哪儿拿

下载地址在 https://github.com/vladkens/macmon,只认 Apple Silicon 的 Mac。

最省事的一条:brew install macmon。

不想装 Homebrew 也行,MacPorts、Cargo、Nix 三种装法 README 里都列了。

0

评论区