- I'm surprised people are still using nvm, considering it's impact on shell startup time.
I can't recommend switching to mise highly enough: https://mise.en.dev/
- Am I the weird one? I usually have 3/4 terminals open at a time and rarely open new ones. Terminal startup speed is a non-issue for me.
The only thing I demand to be fast on my terminal is grep reverse search (ctrl+r) and of course typing a character. But if your terminal can't keep up with your typing speed there is something deeply wrong with it.
by bee_rider
1 subcomments
- I know nobody is missing it, because it is the first bit of the blog post, but the author does have a follow-up where they note corrections based on push-back they received from a reader.
Apparently for some of the simplicity-produces-speed arguments, users have found complex/featurefull. tools that are still quick. I’m not sure how to evaluate this (I like simplicity just because it is easier to fit simple tools in my head) but we should note the counter argument (and applaud the follow-up).
by VladVladikoff
8 subcomments
- Speaking of slow, what I absolutely cannot comprehend is why ghostty is so popular. Despite being written in Zig it is very slow and a total CPU and memory hog. Just sitting there idle it’s pulling a constant 40% of my CPU? No thanks!
- Follow up / errata post written by the author today: https://mijndertstuij.nl/posts/what-i-got-wrong-about-fast-t...
by frollogaston
0 subcomment
- 30ms is pretty slow
$ for i in {1..5}; do /usr/bin/time zsh -i -c exit; done
0.01 real 0.00 user 0.00 sys
0.01 real 0.00 user 0.00 sys
0.00 real 0.00 user 0.00 sys
0.00 real 0.00 user 0.00 sys
0.00 real 0.00 user 0.00 sys
- The gem in this post is Pure, which I haven't heard of until now. I also have my prompt show the git status, and for large repos `git status` can take 10+ seconds to load and cache.
I had no idea that you could do that asynchronously, and then have ZSH update the already printed prompt with the status later! That blows my mind!
- Life is too short to waste time on things that don't matter.
by anygivnthursday
1 subcomments
- I read Ghostty runs in a single process, but whenever I tried something like that eg a client/server model in urxvt or foot, I ended up reverting, because eventually some weird state affected the daemon and had to restart it killing all my terminals, so nowdays I just run foot standalone, with sway tabbing and splits are kind of built into the wm anyways. But keep hearing about Ghostty and wondering if I am missing out on something.
- The problem with this article is that the benchmark method they use is flawed. The documentation of zshbench explains why: https://github.com/romkatv/zsh-bench
Even with a low grade laptop, my zsh config grants me a sub 5ms prompt and a sub 1ms input lag, and that's far more important than the exit time.
./zsh-bench
==> benchmarking login shell of user XYZ ...
creates_tty=0
has_compsys=1
has_syntax_highlighting=0
has_autosuggestions=0
has_git_prompt=1
first_prompt_lag_ms=54.942
first_command_lag_ms=57.069
command_lag_ms=4.275
input_lag_ms=0.669
exit_time_ms=26.522
hyperfine --warmup 3 'zsh -i -c exit'
Benchmark 1: zsh -i -c exit
Time (mean ± σ): 26.5 ms ± 0.5 ms
Range (min … max): 25.5 ms … 27.6 ms
by 1vuio0pswjnm7
4 subcomments
- "The single biggest win is what's not there: no oh-my-zsh, no prezto or plugin manager. I've honestly never understood the appeal of these frameworks."
"Most of these optimizations are about leaving stuff out. It's about being intentional and only adding things you're going to use."
I don't use X11 or a similar graphics layer, only textmode. Thus I don't use a terminal emulator
I don't use zsh. I use NetBSD sh
Smaller and faster
This is what I am comfortable with
Others may have their own preferences; to each their own
I might not understand others' preferences but that's their business, not mine
- On Cygwin, FWIW, it pays huge dividends to avoid making the shell fork at all costs. Don't use $(sed ...). Use ${variable%foo%bar} or whatever. Cygwin punishes you hard for unnecessary fork().
As it turns out, avoiding unnecessary fork() is good hygiene everywhere.
- Great post! There are some neat tricks around completion initing that I'll have to grab. I use fish shell and have done a bunch of optimization around async git statuses too.
by parlortricks
0 subcomment
- I keep reading all these posts about terminal slowness, and here i am just sticking with Konsole + fish + starship.rs. Seems fine and responsive to me.
- Notice a lot of the article was about completions, which fish shell does better than zsh.
by byteoptimizer
0 subcomment
- Life is also too short for the three weeks I then spent configuring it.
- i honestly don't get why people think ghostty is fast. the gpu acceleration slows it down. maybe i push my machines harder than other people but when the machine is under load either gpu or cpu ghostty starts lagging super hard vs iterm. i've never had a problem with iterm render speed, but iterm never starts lagging when my box is fully maxed out and ghostty does regularly. i try it every few years and ive never seen any improvement.
- I was so disappointed that Ghostty doesn't properly render Khmer text. Abugidas are important and you have to be able to render the symbols non-linearly. Cosmic term is the only terminal I've seen that actually works. But it's a bit slow on my 14 year old laptop.
Kitty doesn't work, alacrity doesn't work, foot doesn't work, gnome terminal doesn't work, xfce terminal doesn't work, urxvt doesn't work, xterm doesn't work, the list goes on.
by h4kunamata
0 subcomment
- Life is too short to use slow and problematic system, Linux forever.
- In my life I can spare 50ms waiting for an terminal. But I have no time to spend 10000000 ms commuting to work, cleaning poop after an animal, or waiting for partner to put their face on!
- [dead]
by zeflonex2
14 subcomments
- [flagged]