Performance Highlights
GPU Acceleration
Metal on macOS, OpenGL on Linux for hardware-accelerated rendering
Dedicated IO Thread
Low-jitter IO processing for smooth heavy output
Ligature Support
Metal renderer supports ligatures at 60fps - the only terminal with this capability on macOS
Competitive Speed
2-4x faster than iTerm and Kitty for large file operations
Rendering Architecture
Multi-Renderer Design
Ghostty uses different rendering backends optimized for each platform:- macOS: Metal
- Linux: OpenGL
Metal renderer provides native GPU acceleration:
- Direct Metal API usage (no OpenGL compatibility layer)
- Full ligature support at 60fps+
- CoreText font integration
- Maintains ~60fps under heavy load
Ghostty is one of only two terminal emulators using Metal directly, and the only one supporting ligatures with Metal rendering.
Frame Rate Management
Ghostty intelligently manages frame rates:- Heavy load: Maintains ~60fps
- Idle: Renders only on change (power efficient)
- Animation: Smooth cursor blink and visual effects
IO Performance
Dedicated IO Thread
Ghostty uses a separate thread for IO operations:- Very little jitter under heavy IO load
- Non-blocking rendering
- Smooth experience with
cat large-file.txt
Benchmark Results
From the README:
For IO, we have a dedicated IO thread that maintains very little jitter under heavy IO load (i.e. cat <big file>.txt). On benchmarks for IO, we’re usually within a small margin of other fast terminal emulators.
Comparative performance (reading plain text dumps):
- 4x faster than iTerm
- 4x faster than Kitty
- 2x faster than Terminal.app
- Similar speed to Alacritty (give or take)
Ghostty provides similar performance to Alacritty while offering significantly more features.
Optimization Tips
Font Rendering
Background and Effects
Alpha Blending
Choose the right alpha blending mode:linear-corrected provides the best balance of accuracy and performance.
Resource Usage
Memory Management
Ghostty is efficient with memory:-
Scrollback limit: Configure to match your needs
-
Image storage: Limit memory for image protocols
GPU Memory (VRAM)
Factors affecting VRAM usage:- Font atlas: Cached glyphs (automatically managed)
- Background images: Duplicated per-terminal (see warning above)
- Image protocol: Controlled by
image-storage-limit
Benchmarking
Test IO Performance
Test Rendering Performance
Scrollback Performance
Performance Comparison
| Feature | Ghostty | Alacritty | Kitty | iTerm2 | Terminal.app |
|---|---|---|---|---|---|
| GPU Acceleration | ✅ Metal/OpenGL | ✅ OpenGL | ✅ OpenGL | ✅ Metal (no ligatures) | ❌ CPU |
| Ligatures (macOS) | ✅ 60fps | ❌ | ✅ | ❌ (CPU fallback) | ✅ |
| IO Thread | ✅ | ✅ | ✅ | ✅ | ❌ |
| Large File Speed | Very Fast | Very Fast | Fast | Slow | Medium |
| Memory Usage | Low | Very Low | Medium | High | Low |
Future Improvements
From the README:Despite being very fast, there is a lot of room for improvement here.Planned optimizations:
- Better benchmarking suite
- Additional rendering optimizations
- Shared texture memory for background images
- Per-window background images
Configuration Examples
Monitoring Performance
macOS Activity Monitor
- Open Activity Monitor
- Find “Ghostty” process
- Monitor:
- CPU%: Should be low when idle
- Memory: Depends on scrollback and images
- GPU: Check “Window Server” for GPU usage
Linux Tools
Key Takeaways
GPU Accelerated
Metal on macOS, OpenGL on Linux for maximum rendering speed
Competitive Speed
2-4x faster than many alternatives for IO operations
Low Resource Usage
Efficient memory management with configurable limits
Room to Grow
Already very fast, with optimizations planned
Related Configuration
- font-family - Font selection
- background-opacity - Transparency
- alpha-blending - Blending mode
- scrollback-limit - History buffer size
- image-storage-limit - Image memory limit