第8集:性能实测 — 六款终端跑分
💡 进群学习加 wx: agentupdate
(申请发送: agentupdate)
(申请发送: agentupdate)
统一硬件统一测试。纯输出、Agent 负载、内存占用、启动速度四维对比。
测试方法论
原则:同一台机器、同一个 shell、同一套测试脚本。变的是终端,不是环境。
flowchart TB
subgraph 测试环境
HW[MacBook Pro M3 Pro
36GB RAM
macOS 15.x]
SH[zsh 5.9
统一 .zshrc]
end
subgraph 测试对象
T1[Ghostty]
T2[cmux]
T3[iTerm2]
T4[Warp]
T5[Terminal.app]
T6[tmux inside Ghostty]
end
subgraph 测试场景
S1[场景1: 纯输出吞吐]
S2[场景2: 混合输出滚动]
S3[场景3: Agent真实负载]
S4[场景4: 资源占用]
end
HW --> T1 & T2 & T3 & T4 & T5 & T6
SH --> T1 & T2 & T3 & T4 & T5 & T6
T1 & T2 & T3 & T4 & T5 & T6 --> S1 & S2 & S3 & S4测试场景
场景 1:纯输出吞吐 — cat 大文件
# 生成 10000 行测试文件
seq 1 10000 > /tmp/test-output.txt
# 测量:从开始 cat 到终端渲染完成的时间
time cat /tmp/test-output.txt
场景 2:混合输出 + 高速滚动 — find 全盘搜索
# 测量:大量文件路径高速滚动时的流畅度
time find /usr -name "*.dylib" 2>/dev/null
场景 3:Agent 真实负载 — Claude Code 执行大 Phase
# 启动 Claude Code,执行一个产生大量输出的操作
claude
# 输入:/gsd-execute-phase 1
# 观察:输出是否流畅、是否有卡顿、滚动是否顺滑
场景 4:多任务资源占用
# 打开 10 个标签/Session,每个运行 sleep 9999
# 测量总内存占用
测试结果
基于社区实测数据(VibeHackers、Mitchell Hashimoto benchmark、HN 社区):
渲染速度:
| 场景 | Ghostty | cmux | iTerm2 | Warp | Terminal.app | tmux(内嵌) |
|---|---|---|---|---|---|---|
| cat 10000 行 | ★★★ | ★★★ | ★★ | ★★ | ★ | ★★ |
| find 混合输出 | ★★★ | ★★★ | ★★ | ★★ | ★ | ★★ |
| Agent 大输出 | ★★★ | ★★★ | ★★ | ★ | ★ | ★★ |
★★★ = 流畅无感 ★★ = 轻微延迟 ★ = 明显卡顿
关键数据:
- Ghostty vs iTerm2:约 3x 速度差距(VibeHackers 实测)
- Ghostty vs Warp:约 2.5x 速度差距
- Ghostty ≈ cmux(cmux 基于 Ghostty 渲染引擎)
资源占用:
| 指标 | Ghostty | cmux | iTerm2 | Warp | Terminal.app | tmux |
|---|---|---|---|---|---|---|
| 单窗口内存 | ~80MB | ~100MB | ~150MB | ~200MB | ~50MB | ~5MB/session |
| 10标签总内存 | ~300MB | ~400MB | ~500MB | ~800MB | ~200MB | ~50MB |
| 启动速度 | 瞬间 | 瞬间 | ~0.5s | ~1s | 瞬间 | 瞬间 |
注意力管理(多 Agent 并行时的人效指标):
| 指标 | cmux | tmux | Ghostty | iTerm2 | Warp |
|---|---|---|---|---|---|
| Agent 状态通知 | 通知环 + 桌面 | 状态栏自定义 | 无 | 无 | 部分(AI) |
| 检查 10 Agent 耗时 | ~10s(看通知) | ~30s(逐个翻) | ~60s(逐个翻) | ~45s(标签切换) | ~45s |
| 遗漏概率 | 低(自动提醒) | 中(依赖习惯) | 高(纯手动) | 高 | 中 |
结论
纯速度 → Ghostty ≈ cmux > iTerm2 ≈ Warp > Terminal.app
多Agent管理 → cmux > tmux > Warp > iTerm2 > Ghostty > Terminal.app
远程持久 → tmux > 其他(唯一能 detach/attach 的)
AI集成 → Warp > 其他(唯一内置 AI)
资源占用 → tmux > Terminal.app > Ghostty > cmux > iTerm2 > Warp
没有"最快"的终端,只有"最适合场景"的终端。