Powerlevel9k was a tool for building a beautiful and highly functional CLI, customized for you. P9k had a substantial impact on CLI UX, and its legacy is now continued by P10k.
Just noticed the startup time increased dramatically on branch "next" compared with branch "master".
branch
default conf
0 segment
master
40 ms
35 ms
next
476 ms
71 ms
The above result is got from plugin manager zplugin and bytecode compiling is used for each zsh file. Tested on my laptop with an SSD. There's a perceptible delay on prompt's first rendering.
After some digging, I find out the overhead is caused by the anonymous function within each segment, mainly the p9k::register_segment calls.
TIMEFMT=$'real %E user %U sys %S cpu %P total %*E'
time (p9k::register_segment "DIR" 'DEFAULT' "blue" "$DEFAULT_COLOR" '' $'\uE818' $'\uF115' '\u'${CODEPOINT_OF_AWESOME_FOLDER_O} $'\uF115')
0.01s user 0.01s system 98% cpu 0.023 total
time (p9k::set_default P9K_DIR_PATH_SEPARATOR "/")
0.00s user 0.00s system 72% cpu 0.002 total
Causes of the problem
inefficient, or too many helpers (most slowed by p9k::find_first_defined)
icon and color register is done too early. The corresponding segment may not be rendered at precmd at all
Just noticed the startup time increased dramatically on branch "next" compared with branch "master".
The above result is got from plugin manager
zplugin
and bytecode compiling is used for each zsh file. Tested on my laptop with an SSD. There's a perceptible delay on prompt's first rendering.After some digging, I find out the overhead is caused by the anonymous function within each segment, mainly the
p9k::register_segment
calls.Causes of the problem
p9k::find_first_defined
)precmd
at all