Skip to content

zsh-startup

Times this machine's interactive zsh, so a startup regression is a number rather than an impression. zsh-startup --help carries the three reports, the sampling method and why each was chosen; this page is the part that is about the repo rather than about the tool.

It measures the machine, and there is no threshold

No budget, and no build that fails on a slow number. A startup time is a property of the machine as much as of the config — a laptop on battery and a desktop disagree by more than most regressions — so a threshold set here would fail on the slowest box in the fleet and pass everywhere a regression actually landed.

What is guarded instead is the mechanism, in tests/shell/test_zshrc_startup.py: that every autoloaded completion is generated before compinit reads fpath, and that a generated file compinit would skip is refused rather than written.

Where the numbers came from

The measurement that motivated the completion split is in Profiling Zsh Startup, which is also where the ZSHRC_DEBUG trace and the PS4 whole-startup trace are written down. This tool covers the third case those two miss: the wall clock, repeated, with a median rather than one run.