ftop 是一个 1.7 MB 的原生 macOS 系统监视器,一块可以放在桌面任意位置的玻璃面板,拖动任意边缘它都会自动挑一个合适的布局。作者只做当前状态:没有历史曲线,没有磁盘面板。开箱六项读数——核心、内存、网络、GPU、功耗、温度,再加一列按忙碌程度排序的进程。
它要替换的东西很具体:你总在某个标签页里开着一个终端监视器,占着一块本可以放别的东西的屏幕。ftop 的做法是把它变成一个原生窗口,拖到桌面任何位置,需要时看一眼,不需要就缩到菜单栏里去。
作者自己划了边界:它只在机器真正卖力工作的时候有用,比如本地跑着模型、agent 在编译、或者一场长构建正在跑。你想一眼看清核心、内存和网络在干什么,以及是哪��个应用在干这些。

一块面板,任意尺寸
这是 ftop 最直接的卖点:拖任意一条边,面板自己挑一个装得下的布局,然后稳稳落位,不会裁掉内容,也不会留空。小窗口只保留必要项,大窗口显示更多内容,而不是把字号放大。
作者提供了一张六种尺寸的对比图,最小的那一档已经缩成菜单栏里一条窄窄的横条,只剩几个图标加数字。中间几档是纵向堆叠,最宽的一档才把进程列表拉到右侧。这张图比任何描述都更能说明「works at any size」不是句宣传语。
视觉上,每个数字都由同一个小圆徽章引导,带弧线的那个是仪表盘。颜色负责说明归属,所以几乎不需要读文字。核心区每根柱的填充是使用率,柱下那道短刻度是这核当前的频率;核心按种类分组,最快的排在最前面。

关于 CPU 百分比,它和活动监视器不是一个口径
这一条值得单独讲,因为它会让第一次用的人怀疑自己看错了。
ftop 里一个应用的 CPU 占比,是它占整台机器的比例,和上方整机总数的单位一致,所以永远不会超过 100%。而 macOS 自带的活动监视器把单个核心算作 100%,所以在活动监视器里看到某个应用 300% 是正常的,在 ftop 里不可能出现。
这不是谁算错了,是两把尺子不一样。要横向比较多个应用,ftop 的整机占比口径更直观;要跟网上看到的那些数字对照,得先知道对方用的是哪把尺子。
列表的排序逻辑也围绕这个设计:一个进程一忙起来就立刻入位,走的时候慢慢退场;两个应用只差百分之一时不交换位置,一个行的读数超过邻居时会平滑滑过去,超过更多的则原地翻转,所以行不会横穿整个列表。按住某个进程会浮出卡片,显示它的 CPU、内存,以及这个应用内部的辅助进程;大窗口下两个徽章可以在 CPU 和内存之间切换排序依据。
硬件给不出的读数,显示为不可用
作者在 README 里写明了一条原则:硬件给不出的读数,显示为不可用,绝不显示为 0。
这个选择比显示 0 诚实得多。系统负载显示 0 和「我没测到」是两件完全不同的事,混为一谈会让你在出问题时往错误方向查。
温度那一项还额外标注了它真实来自哪个传感器等级——macOS 有多个传感器层级,读数可以只来自其中一层,这个信息被如实标出来。
不看你的时候,几乎不花钱
作者用 scripts/perf.sh 在 14 核 Apple Silicon 机器上实测过(每秒刷新一次):
小与中等面板,CPU 占用在单核的 0.8% 以下,内存 30 MB 以下;最大的面板、32 行进程时,CPU 约 0.9%,内存约 52 MB;隐藏起来或者被完全遮住时,CPU 降到 0.0% 到 0.1% 之间。最后这一条靠的是它的行为:隐藏或完全被遮挡时,ftop 会停止读取除菜单栏那一个读数以外的任何内容。
这几组数字放在这里,「不看你的时候几乎不花钱」这句话就有了具体支撑,不是形容词。
几个限制,作者自己都写在前面了
ftop 的 README 有一节叫 Limits,写得比多数同类项目都直接。下面这几条是原文内容,不是我的判断。
它只支持 Apple Silicon。核分组和逐核频率都依赖 Apple silicon 的硬件特性,Intel Mac 完全用不了。系统要求是 macOS 15 及以上。
逐核频率和温度取自 macOS 的私有接口(IOReport 与 HID sensor 服务)。macOS 一次更新就可能让这些读数失效,作者也正因为这个原因无法把 ftop 提交到 Mac App Store。所以它只能从 GitHub releases 下载,这是产品形态的结果,不是作者的选择。
未经过 Apple 公证。应用只做了本地签名,从浏览器下载的副本会被 macOS 拦下,需要手动清除一次下载隔离标记:xattr -dr com.apple.quarantine ~/Applications/Ftop.app。
要看系统进程,需要授权。macOS 默认只允许应用看自己的进程。想把 WindowServer 这类系统进程算进去,需要执行一次 sudo ftop grant。作者对这一步的说明是:它会把应用内一个小助手标记为 setuid root,这个助手不接受参数、不读环境变量、不写文件,只打印进程表,源码在 Sources/ftop-helper/main.swift。源码公开是好事,但这毕竟是提权操作,授权前值得看一眼那行源码。
另外从设置面板的截图能看到版本号是 0.2.0,仍在 0.x 阶段。0.1.0 那个版本还不能自我更新,从 0.1.1 起才会每天自动检查新版本。
细节上的几个选择
设置面板是一整块圆开关:Memory、Network、GPU、Power、Processes 决定显示什么,On Top、Menu Bar、Smooth、Hide、Quit 决定行为,Sea、Graphite、Warm 三套配色,More 下面才是有值的具体项——菜单栏显示哪个读数、刷新间隔、进程行数上限、语言、Updates 的更新策略(自动安装、只提示、或者永不联网)。
同一份设置同时是一个纯文本文件,路径在 ~/.config/ftop/config.json5,格式是带注释的 JSON。面板改的设置和这个文件保持同步,保存即刻生效。想批量调配置的话,直接改文件比点面板快。

它从 btop 分叉起步,但已经完全重写,不共享任何代码。项目的门禁是 scripts/check.sh,包含格式检查、无警告构建和测试。README 里的图片由 ftop 自己的绘图代码用示例读数生成,真实窗口用的是 macOS 的玻璃材质,背景会跟随背后的内容变化。
界面支持英文和中文,README 也有官方简体中文版。作者另开了一个仓库接受捐赠,并且明确说明不接受外部 pull request。
声明:本文来自苹果迷投稿,不代表苹果家园立场,版权归原作者所有,欢迎分享本文,转载请保留出处!