Skip to main content
Ghostty is built for speed. It uses GPU acceleration for rendering, dedicated IO threading, and careful optimizations to deliver one of the fastest terminal emulator experiences available.

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:
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:
Main Thread          IO Thread
    |                    |
    |  ← Terminal data ← |
    ↓                    ↓
 Render            Read from PTY
Benefits:
  • 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

1

Choose monospace fonts

Monospace fonts render faster than proportional fonts:
font-family = "JetBrains Mono"
font-size = 13
2

Disable unnecessary features

Disable ligatures if you don’t need them:
font-feature = -calt,-liga,-dlig
3

Adjust font metrics conservatively

Excessive adjustments can impact rendering:
# Minimal adjustments for performance
adjust-cell-height = 0
adjust-cell-width = 0

Background and Effects

# Disable transparency
background-opacity = 1.0

# No background image
# background-image = (not set)

# No blur
# background-blur = (not set)
Background images are duplicated in VRAM per-terminal, which can increase memory usage for large images.

Alpha Blending

Choose the right alpha blending mode:
# Native color space (macOS default)
alpha-blending = native

# Linear gamma correction (Linux default, good balance)
alpha-blending = linear-corrected

# Pure linear blending
alpha-blending = linear
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
    scrollback-limit = 10000  # Default
    
  • Image storage: Limit memory for image protocols
    image-storage-limit = 320000000  # 320MB default
    

GPU Memory (VRAM)

Factors affecting VRAM usage:
  1. Font atlas: Cached glyphs (automatically managed)
  2. Background images: Duplicated per-terminal (see warning above)
  3. Image protocol: Controlled by image-storage-limit

Benchmarking

Test IO Performance

# Generate a large text file
seq 1 100000 > numbers.txt

# Time rendering
time cat numbers.txt

Test Rendering Performance

# Stress test with continuous output
yes | head -n 1000000

# Watch CPU usage
top -pid $(pgrep ghostty)

Scrollback Performance

# Fill scrollback buffer
seq 1 100000

# Test scrollback speed
# Use Page Up/Down or scrollbar

Performance Comparison

FeatureGhosttyAlacrittyKittyiTerm2Terminal.app
GPU Acceleration✅ Metal/OpenGL✅ OpenGL✅ OpenGL✅ Metal (no ligatures)❌ CPU
Ligatures (macOS)✅ 60fps❌ (CPU fallback)
IO Thread
Large File SpeedVery FastVery FastFastSlowMedium
Memory UsageLowVery LowMediumHighLow

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

# Optimized for speed
font-family = "JetBrains Mono"
font-size = 12
font-feature = -calt,-liga  # Disable ligatures

background-opacity = 1.0
alpha-blending = native

scrollback-limit = 5000
image-storage-limit = 100000000

Monitoring Performance

macOS Activity Monitor

  1. Open Activity Monitor
  2. Find “Ghostty” process
  3. Monitor:
    • CPU%: Should be low when idle
    • Memory: Depends on scrollback and images
    • GPU: Check “Window Server” for GPU usage

Linux Tools

# CPU and memory
top -p $(pgrep ghostty)

# Detailed stats
htop -p $(pgrep ghostty)

# GPU usage (NVIDIA)
nvidia-smi

# GPU usage (Intel/AMD)
intel_gpu_top
# or
radeontop

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