Ep 8: Performance Benchmarks — Comparing 6 Terminals

⏱ Est. reading time: 6 min Updated on 5/7/2026

Uniform hardware, uniform tests. A four-dimensional comparison across pure output throughput, Agent load handling, memory usage, and startup speed.

Methodology

Principle: Same machine, same shell, same test scripts. The only variable is the terminal itself.

flowchart TB
    subgraph Test Environment
        HW[MacBook Pro M3 Pro
36GB RAM
macOS 15.x] SH[zsh 5.9
Unified .zshrc] end subgraph Test Subjects T1[Ghostty] T2[cmux] T3[iTerm2] T4[Warp] T5[Terminal.app] T6[tmux inside Ghostty] end subgraph Test Scenarios S1[Scenario 1: Pure Output Throughput] S2[Scenario 2: Mixed Output Scrolling] S3[Scenario 3: Real-world Agent Load] S4[Scenario 4: Resource Usage] 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

Test Scenarios

Scenario 1: Pure Output Throughputcat large file

# Generate a 10,000 line test file
seq 1 10000 > /tmp/test-output.txt

# Measurement: Time from starting cat until rendering is complete
time cat /tmp/test-output.txt

Scenario 2: Mixed Output + High-speed Scrollingfind full disk search

# Measurement: Fluidity during high-speed scrolling of many file paths
time find /usr -name "*.dylib" 2>/dev/null

Scenario 3: Real-world Agent Load — Claude Code executing a large Phase

# Start Claude Code and execute an operation that generates massive output
claude
# Input: /gsd-execute-phase 1
# Observation: Fluidity of output, lag presence, and scroll smoothness

Scenario 4: Multi-tasking Resource Usage

# Open 10 tabs/sessions, each running 'sleep 9999'
# Measurement: Total memory consumption

Test Results

Based on community benchmarks (VibeHackers, Mitchell Hashimoto benchmark, HN community):

Rendering Speed:

Scenario Ghostty cmux iTerm2 Warp Terminal.app tmux (nested)
cat 10,000 lines ★★★ ★★★ ★★ ★★ ★★
find mixed output ★★★ ★★★ ★★ ★★ ★★
Real-world Agent load ★★★ ★★★ ★★ ★★

★★★ = Fluid/No lag | ★★ = Slight delay | ★ = Noticeable lag

Key Data Points:

  • Ghostty vs. iTerm2: Approx. 3x speed difference (VibeHackers benchmark).
  • Ghostty vs. Warp: Approx. 2.5x speed difference.
  • Ghostty ≈ cmux: cmux uses the Ghostty rendering engine.

Resource Usage:

Metric Ghostty cmux iTerm2 Warp Terminal.app tmux
Single Window RAM ~80MB ~100MB ~150MB ~200MB ~50MB ~5MB/session
10 Tabs Total RAM ~300MB ~400MB ~500MB ~800MB ~200MB ~50MB
Startup Speed Instant Instant ~0.5s ~1s Instant Instant

Attention Management (Efficiency metric for parallel Agents):

Metric cmux tmux Ghostty iTerm2 Warp
Agent Status Alerts Ring + Desktop Status bar (custom) None None Partial (AI)
Check 10 Agents (Time) ~10s (alerts) ~30s (manual) ~60s (manual) ~45s (tabs) ~45s
Probability of Miss Low (Auto-alert) Med (Habit-based) High (Manual) High Med

Conclusion

Pure Speed → Ghostty ≈ cmux > iTerm2 ≈ Warp > Terminal.app
Multi-Agent Mgmt → cmux > tmux > Warp > iTerm2 > Ghostty > Terminal.app
Remote Persistence → tmux > Others (The only one with detach/attach)
AI Integration → Warp > Others (The only one with built-in AI)
Resource Usage → tmux > Terminal.app > Ghostty > cmux > iTerm2 > Warp

There is no single "fastest" terminal; there is only the "most suitable" terminal for your specific scenario.