Benchmarks
TildaZ next to the terminals you know.
TildaZ v0.10.6, measured with the terminals people use on each OS: throughput, key-to-screen latency, memory, and startup time. The weak spots are in the tables too.
How to read
Each OS stands on its own.
- Compare terminals within one OS, not across OSes. The machines differ, and each OS reports latency and memory in its own way.
- Linux and Windows ran on the same laptop. macOS ran on a MacBook Pro. All three displays ran at 120 Hz.
- Bold is the best value in a row or column. The TildaZ column and row are highlighted.
- † marks a terminal whose scrollback or grid could not be matched. It is left out when picking the best value for throughput and memory. Each OS lists the reasons below its tables.
| Metric | What it measures |
| Throughput | How fast the terminal takes in and draws 64 MiB of output in a 120x40 grid with 32,767 lines of scrollback. Mean of five runs, without the fastest and the slowest. |
| Key-to-screen latency | From a synthetic key press to the first frame that changes, with the terminal idle. 150 presses per terminal. The 95th percentile (p95) shows the slow tail. |
| Memory | All of the terminal's own processes, on an empty screen and after printing 40,000 lines. Idle CPU is the CPU time used over the next 30 seconds, where one core is 100%. Median of three runs. |
| Startup | From launch to the first frame that shows the program running inside the terminal. Each app had been launched before (warm start). Median of five runs. |
| Workload | Each line holds |
| Plain ASCII | 80 characters of ASCII |
| ANSI color escapes | A build log with color codes |
| Hangul, wide cells | Korean Hangul only, two cells each |
| Mixed CJK and emoji | Hangul, emoji, skin tones, ZWJ sequences, and block elements |
| Emoji with VS-16 | ❤️ only: a symbol plus a selector that makes it an emoji |
| ZWJ emoji sequences | 👨👩👧 only: five code points joined into one emoji |
Ryzen AI 7 350 laptop · 120 Hz
Linux
TildaZ is first on Hangul and CJK output and second to foot on plain text and ANSI color. Emoji is its weak spot: with VS-16 emoji it is fourth, at 77% of Alacritty. It starts first on each desktop, and once scrollback is full it uses the least memory of the terminals with matching settings. On KDE Plasma, foot has clearly lower latency, and TildaZ sits with kitty, Alacritty, and WezTerm. On GNOME and COSMIC, TildaZ has the lowest latency, tied with Alacritty on COSMIC.
Lenovo Yoga Slim 7 14AKP10 · AMD Ryzen AI 7 350 · CachyOS · built-in display, 2880x1800 at 120 Hz · AC power · KDE Plasma 6.8.0, GNOME Shell 51.1, COSMIC (cosmic-comp 1.0.0) · October 20–21, 2026
foot 1.28.0 · Alacritty 0.17.0 · kitty 0.49.2 · WezTerm 20240203-110809-5046fc22 · Ghostty 1.3.1 · Konsole 26.08.2 · GNOME Terminal 3.60.0 · COSMIC Terminal 1.10.0
Throughput · MiB/s, higher is better · KDE Plasma
Linux throughput on KDE Plasma, MiB/s
| Workload | TildaZ | foot | kitty | Alacritty | Ghostty | WezTerm | GNOME Terminal† | Konsole | COSMIC Terminal† |
| Plain ASCII | 141.6 | 148.3 | 141.4 | 110.2 | 110.0 | 29.8 | 45.6 | 16.6 | (98.7) |
| ANSI color escapes | 133.6 | 172.5 | 126.9 | 123.8 | 56.0 | 29.9 | 38.7 | 20.9 | (109.6) |
| Hangul, wide cells | 112.6 | 110.9 | 107.8 | 111.2 | 87.0 | 39.3 | 34.0 | 13.6 | (101.3) |
| Mixed CJK and emoji | 138.2 | 128.1 | 115.0 | 118.4 | 62.4 | 40.3 | 31.2 | 17.4 | (105.8) |
| Emoji with VS-16 | 94.9 | 105.0 | 121.8 | 123.4 | 26.1 | 56.4 | 27.9 | 21.5 | (105.1) |
| ZWJ emoji sequences | 109.5 | 130.6 | 119.2 | 108.0 | 33.8 | 58.0 | 45.9 | 39.1 | (95.1) |
Key-to-screen latency · ms, lower is better
KDE Plasma
| Terminal | Median | p95 |
| foot | 8.13 | 14.02 |
| kitty | 11.93 | 15.64 |
| Alacritty | 12.57 | 15.30 |
| WezTerm | 12.73 | 18.36 |
| TildaZ | 12.74 | 14.60 |
| COSMIC Terminal | 13.00 | 14.54 |
| GNOME Terminal | 13.37 | 15.20 |
| Ghostty | 21.12 | 23.32 |
| Konsole | 21.77 | 24.76 |
GNOME
| Terminal | Median | p95 |
| TildaZ | 7.32 | 11.99 |
| Alacritty | 7.89 | 13.83 |
| GNOME Terminal | 10.32 | 19.26 |
COSMIC
| Terminal | Median | p95 |
| TildaZ | 46.12 | 67.25 |
| Alacritty | 46.43 | 67.98 |
| COSMIC Terminal | 66.97 | 73.85 |
Memory · lower is better · KDE Plasma
Linux memory (PSS) on KDE Plasma
| Terminal | Empty MiB | Filled MiB | Idle CPU % |
| foot | 26.5 | 83.4 | 0.00 |
| TildaZ | 39.3 | 72.4 | 0.00 |
| GNOME Terminal† | 43.8 | 47.5 | 0.03 |
| Alacritty | 44.6 | 137.1 | 0.00 |
| Konsole | 52.3 | 107.5 | 0.00 |
| WezTerm | 74.7 | 103.8 | 0.03 |
| Ghostty | 84.6 | 88.1 | 0.47 |
| kitty | 112.2 | 233.6 | 0.07 |
| COSMIC Terminal† | (56.6) | (167.1) | (0.00) |
Startup · ms, lower is better
KDE Plasma
| Terminal | Median |
| TildaZ | 107.4 |
| Alacritty | 118.6 |
| Konsole | 156.4 |
GNOME
| Terminal | Median |
| TildaZ | 90.6 |
| Alacritty | 96.8 |
| GNOME Terminal | 240.4 |
COSMIC
| Terminal | Median |
| TildaZ | 79.3 |
| Alacritty | 80.6 |
| COSMIC Terminal | 121.1 |
- Throughput and memory come from KDE Plasma only. On its own desktop, GNOME Terminal was 32% faster with plain text (60.2 vs 45.6 MiB/s). COSMIC Terminal was about the same on both.
- Latency and startup were measured on each desktop. Do not compare them across desktops. On Linux, both end when the frame reaches the capture tool, and that path differs by desktop. On COSMIC, every terminal is slow, which points to the desktop's screen capture rather than the terminals (not confirmed).
- † GNOME Terminal uses the scrollback from your profile (10,000 lines here). It cannot be set from the command line.
- † COSMIC Terminal has a fixed grid and a fixed 100,000-line scrollback, so its throughput and memory are in parentheses. Its grid size has little effect on latency and startup.
- On GNOME, TildaZ cannot be given a grid size, so it ran at 43x13 instead of 120x40 for latency.
- Startup opens each terminal's desktop entry:
kioclient exec on KDE Plasma, gio launch on GNOME and COSMIC.
MacBook Pro M5 Pro · 120 Hz
macOS
TildaZ is first on Hangul and emoji output. It is second to Alacritty on ANSI color and CJK, and third on plain text, behind Alacritty and Ghostty. It starts fastest and uses the least memory of the terminals with matching settings. Latency is its weak spot: fourth of seven, about 7 ms behind Alacritty and kitty.
MacBook Pro · Apple M5 Pro · macOS 27.0.1 · built-in display, 3024x1964 at 120 Hz · AC power · October 21, 2026
Alacritty 0.17.0 · kitty 0.49.2 · Ghostty 1.3.1 · WezTerm 20240203-110809-5046fc22 · iTerm2 3.7.6 · Terminal.app 2.15
Throughput · MiB/s, higher is better
macOS throughput, MiB/s
| Workload | TildaZ | Alacritty | kitty | Ghostty | WezTerm | iTerm2 | Terminal.app† |
| Plain ASCII | 128.5 | 146.4 | 126.4 | 133.7 | 45.3 | 87.6 | 45.8 |
| ANSI color escapes | 128.1 | 132.1 | 106.8 | 87.7 | 49.3 | 18.9 | 31.8 |
| Hangul, wide cells | 124.0 | 114.0 | 92.4 | 122.5 | 45.7 | 15.0 | 39.7 |
| Mixed CJK and emoji | 119.3 | 141.2 | 96.6 | 84.7 | 46.4 | 7.4 | 39.4 |
| Emoji with VS-16 | 130.3 | 98.3 | 102.8 | 33.3 | 67.1 | 13.9 | 42.4 |
| ZWJ emoji sequences | 135.0 | 134.5 | 107.3 | 43.2 | 70.3 | 22.8 | 43.9 |
Key-to-screen latency · ms, lower is better
macOS key-to-screen latency
| Terminal | Median | p95 |
| Alacritty | 12.03 | 18.57 |
| kitty | 12.40 | 18.82 |
| iTerm2 | 17.48 | 22.89 |
| TildaZ | 19.51 | 25.58 |
| Terminal.app | 21.34 | 27.49 |
| Ghostty | 23.40 | 29.54 |
| WezTerm | 32.58 | 36.49 |
Memory · lower is better
macOS memory (phys_footprint)
| Terminal | Empty MiB | Filled MiB | Idle CPU % |
| TildaZ | 54.5 | 102.6 | 0.00 |
| Terminal.app† | 59.0 | 61.3 | 0.27 |
| Alacritty | 65.0 | 176.3 | 0.00 |
| WezTerm | 85.9 | 111.9 | 0.04 |
| Ghostty | 158.7 | 184.4 | 0.76 |
| kitty | 204.5 | 325.2 | 0.20 |
| iTerm2 | 212.1 | 250.2 | 0.92 |
Startup · ms, lower is better
macOS startup
| Terminal | Median |
| TildaZ | 185.5 |
| Alacritty | 239.6 |
| Ghostty | 259.3 |
| WezTerm | 302.3 |
| Terminal.app | 392.6 |
| kitty | 475.1 |
| iTerm2 | 751.1 |
- † Terminal.app uses the scrollback from your profile. It cannot be set by script.
- Latency ends at the time macOS reports the frame was shown. Startup opens each app with
open, the same path as the Dock or Spotlight.
Ryzen AI 7 350 laptop · 120 Hz
Windows
TildaZ is first on plain text, Hangul, and CJK output. Windows Terminal is about twice as fast with emoji, and slightly faster with ANSI color. The two tie on latency. Leaving conhost aside, TildaZ uses the least memory on an empty screen, and Windows Terminal uses less once scrollback is full. Only conhost starts faster.
Same laptop as Linux · Windows 11 Pro 25H2 · built-in display, 2880x1800 at 120 Hz, 150% scale · AC power, Best performance mode · October 21, 2026
Windows Terminal 1.24.12741.0 · conhost (Windows build 26200) · Alacritty 0.17.0 · WezTerm 20240203-110809-5046fc22
Throughput · MiB/s, higher is better
Windows throughput, MiB/s
| Workload | TildaZ | Windows Terminal | conhost† | WezTerm | Alacritty |
| Plain ASCII | 296.1 | 237.7 | 177.9 | 12.9 | 11.1 |
| ANSI color escapes | 80.4 | 83.3 | 15.8 | 12.1 | 10.6 |
| Hangul, wide cells | 157.7 | 107.5 | 62.6 | 6.8 | 6.0 |
| Mixed CJK and emoji | 128.4 | 102.1 | 90.7 | 9.2 | 7.8 |
| Emoji with VS-16 | 80.3 | 171.2 | 83.0 | 13.9 | 11.7 |
| ZWJ emoji sequences | 93.6 | 164.4 | 121.5 | 27.8 | n/a |
Key-to-screen latency · ms, lower is better
Windows key-to-screen latency
| Terminal | Median | p95 |
| TildaZ | 10.52 | 15.15 |
| Windows Terminal | 10.54 | 14.85 |
| conhost | 19.89 | 23.32 |
| WezTerm | 26.71 | 46.10 |
| Alacritty | 28.30 | 31.79 |
Memory · lower is better
Windows memory (Private Working Set)
| Terminal | Empty MiB | Filled MiB | Idle CPU % |
| conhost† | 3.7 | 3.8 | 0.16 |
| TildaZ | 34.2 | 80.5 | 0.00 |
| Windows Terminal | 42.5 | 65.0 | 0.52 |
| Alacritty | 87.7 | 189.5 | 0.00 |
| WezTerm | 258.0 | 253.2 | 0.16 |
Startup · ms, lower is better
Windows startup
| Terminal | Median |
| conhost | 183.0 |
| TildaZ | 304.0 |
| Alacritty | 373.5 |
| WezTerm | 624.1 |
| Windows Terminal | 731.7 |
- † conhost has no scrollback: its buffer is the window.
- Alacritty cannot run the ZWJ workload on Windows. WezTerm was started with
-n, which skips the user config.
- The runs were pinned to the four fast CPU cores. This CPU mixes fast and small cores, and unpinned runs varied a lot. On Linux, pinned and unpinned runs gave the same results, so Linux was not pinned.
- Latency and startup end at the time Windows reports the frame was presented (DXGI
LastPresentTime).
- TildaZ was built from source at the code released as v0.10.6. The versions of the other terminals are listed under each OS.
- Every run used AC power, with other windows minimized.
- The scripts are
compare-terminals.sh (throughput), compare-latency.sh, compare-memory.sh, and compare-startup.sh in tool/stress. Its README covers the setup and the pitfalls on each OS.
- Full results, including min, max, and grid sizes: #809. Earlier rounds: #756.