`glab completion -s fish | source` takes 140ms
Firstly, thanks a lot for glab
!
(Not a bug, so I didn't select the bug template)
On my system — M1 Macbook Pro — glab completion -s fish | source
is quite slow for something that runs on every shell startup — 140ms:
❯ time glab completion -s fish | source
________________________________________________________
Executed in 139.25 millis fish external
usr time 29.14 millis 1.46 millis 27.68 millis
sys time 35.54 millis 2.26 millis 33.28 millis
I looked briefly at what was causing this:
- Most of the code is just a function, and so nothing executes.
- But just generating the fish code with
glab completion -s fish
can take 30-55ms (one run was 80ms). - And there are two commands at the bottom that execute; one of which takes 40-70ms:
time complete --do-complete "glab " > /dev/null 2>&1
________________________________________________________
Executed in 79.95 millis fish external
usr time 14.66 millis 1.22 millis 13.44 millis
sys time 20.22 millis 1.12 millis 19.10 millis
It would be great to have completions which don't slow down shell startup. As a reference, the others that run in my config.fish
are all dramatically faster:
❯ eval "time glab completion -s fish | source"
eval "time zoxide init fish | source"
eval "time starship init fish | source"
eval "time jj debug completion --fish | source"
eval "time atuin init fish | source"
eval "time mcfly init fish | source"
________________________________________________________
Executed in 118.00 millis fish external
usr time 28.88 millis 1.49 millis 27.39 millis
sys time 31.92 millis 2.03 millis 29.89 millis
________________________________________________________
Executed in 6.90 millis fish external
usr time 1.32 millis 556.00 micros 0.76 millis
sys time 2.30 millis 841.00 micros 1.46 millis
________________________________________________________
Executed in 17.98 millis fish external
usr time 5.81 millis 0.83 millis 4.98 millis
sys time 10.23 millis 2.08 millis 8.15 millis
________________________________________________________
Executed in 27.73 millis fish external
usr time 14.49 millis 11.84 millis 2.65 millis
sys time 4.27 millis 1.19 millis 3.08 millis
________________________________________________________
Executed in 12.77 millis fish external
usr time 2.86 millis 0.21 millis 2.65 millis
sys time 2.56 millis 1.02 millis 1.55 millis
________________________________________________________
Executed in 19.60 millis fish external
usr time 2.72 millis 278.00 micros 2.44 millis
sys time 3.95 millis 598.00 micros 3.35 millis