bass
bass copied to clipboard
Significantly slower to source paths to a different directory
I'm hesitant to even open this, because I really don't understand what or how is happening, but it's really repeatable and badly affects my terminal start time:
With a time bass source .profile
in my config.fish
:
# [new terminal window]
________________________________________________________
Executed in 3.63 secs fish external
usr time 280.52 millis 1361.00 micros 279.16 millis
sys time 330.70 millis 0.00 micros 330.70 millis
~>time bass source .profile
________________________________________________________
Executed in 130.04 millis fish external
usr time 98.23 millis 0.00 millis 98.23 millis
sys time 14.84 millis 5.71 millis 9.14 millis
~>fish
________________________________________________________
Executed in 3.51 secs fish external
usr time 226.67 millis 4.50 millis 222.18 millis
sys time 310.05 millis 0.64 millis 309.42 millis
~>head -n1 .config/fish/config.fish
time bass source "$HOME/.profile"
Why is it so much slower when invoked from config.fish
? Sure, there's other stuff in there, but it's only the bass source
that I'm timing, as the combination of fish
& head
outputs show.
Oh, ah!
~>time bass source "$HOME/.profile"
________________________________________________________
Executed in 3.57 secs fish external
usr time 268.13 millis 1.76 millis 266.38 millis
sys time 291.01 millis 3.44 millis 287.57 millis
(Changed .profile
to $HOME/.profile
in order to exactly match config.fish
!)
Which of course you'd think could only be a fish
issue, but:
~>time echo "$HOME/.profile" >/dev/null
________________________________________________________
Executed in 122.00 micros fish external
usr time 128.00 micros 128.00 micros 0.00 micros
sys time 17.00 micros 17.00 micros 0.00 micros
I don't understand this..!
Ah, of course.. :facepalm: - it's not that there's a variable interpolated, it's that it's an absolute path:
~>time bass source /home/ojf/.profile
________________________________________________________
Executed in 3.63 secs fish external
usr time 309.51 millis 2.36 millis 307.15 millis
sys time 332.80 millis 3.63 millis 329.16 millis
~>pwd
/home/ojf
~>time bass source .profile
________________________________________________________
Executed in 119.79 millis fish external
usr time 94.47 millis 2.33 millis 92.14 millis
sys time 9.40 millis 2.67 millis 6.73 millis
Wrong again..! It seems to be the presence of forward slashes, not necessarily that it's at the beginning (an absolute path).