Ghostty is now indisputably the fastest terminal emulator at IO throughput, by a very large margin. On ASCII, Unicode, and CSI tests, Ghostty is more than 2x (double!) faster than any other leading "fast" terminal. These changes are directly in libghostty, too, so everyone wins.
`time cat 150MB_ascii.txt`:
- Ghostty nightly: 575ms
- Ghostty 1.3.2: 1.5sec
- Alacritty: 1.2sec
- Kitty: 1.7sec
- Warp: 3.8sec
- iTerm2, Terminal: stopped after 60s
`time cat 150MB_unicode.txt` (mixed languages):
- Ghostty nightly: 536ms
- Ghostty 1.3.2: 1.22sec
- Alacritty: 1.05s
- Kitty: 1.35s
- Warp: 3.4s
- iTerm2, Terminal: stopped after 60s
`DOOM-Fire-Zig` (an IO test):
- Ghostty nightly: 842fps
- Ghostty 1.3.2: 532fps
- Kitty: 485fps
- Alacritty: 593fps
- Warp: 577fps
- iTerm2, Terminal: 60fps (yes, 60)
To quickly address the "cat speed doesn't matter" naysayers: this is a direct test of how many bytes/second you can push through a terminal. It doesn't cover just "read big file" but also "how much can a TUI do". The tests above test various shapes of inputs (plain ascii, unicode/wide chars, csi-heavy loads, etc.). IO throughput is incredibly important.
Most of these improvements apply to libghostty-vt consumers too, so any libghostty-based terminals will instantly see huge throughput improvements by simply upgrading (ABI compatible).
I'll cover the exact improvements in a blog post in the future. These results are the result of 6 separate optimizations.