Problem
On my new M3 Mac Pro (36 GB RAM) running macOS Sequoia 15.3.2, launching a new interactive shell in both the built‑in Terminal.app and the GPU‑accelerated Ghostty takes orders of magnitude longer than on my Linux/Windows boxes. I frequently use tmux, and spawning new panes can take > 1 second, whereas on Linux/Windows it’s < 0.03 s.
What I’ve Tried
-
Stripped-down
~/.zshrc
- Disabled ALL plugins; still see initial startup ~1.2 s and subsequent ~0.1–0.2 s.
-
Custom timing function:
timezsh () {
shell=${1-$SHELL}
for i in $(seq 1 10); do
/usr/bin/time $shell -i -c exit
done
}
Results (no plugins):
real 1.24; user 0.10; sys 0.05
real 0.15; user 0.04; sys 0.03
real 0.13; user 0.03; sys 0.03
real 0.14; user 0.03; sys 0.03
With plugins enabled:
-
compinit tweaks & zprof analysis
- Precompiled cache, removed old dump files, no significant improvement.
-
Homebrew & some cli tools also feel sluggish, suggesting a deeper system issue.
Environment
- macOS: Sequoia 15.3.2
- Hardware: Apple M3 Pro, 36 GB RAM
- Shells tested:
/bin/zsh
(default)/bin/bash
- Measurement tool:
/usr/bin/time
andzprof
Questions
Has anyone observed 1-2 second cold startup on an M3 Mac for Zsh, even with minimal config?
Are there known system-wide factors (e.g. Rosetta layers, filesystem checks, notarization delays) that could slow down every new shell instance?
How can I diagnose what’s happening during that 1 second (e.g. tracing dynamic libraries, file-system stalls)?
Any tweaks or workarounds to get terminal/spawn times closer to < 0.1 s?
Thanks in advance for any insights!