-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Startup performance is noticeably slow #234
Comments
See https://github.com/romkatv/powerlevel10k/blob/master/README.md#is-powerlevel10k-fast-to-load. I've done nothing to optimize startup time because I personally don't care. My workflow is unaffected by zsh startup latency. It may be possible to significantly reduce startup time but it's not something I want to do. If you send a PR that improves startup latency without too many adverse side effects, I'll be happy to incorporate it. |
Oh, can't believe I missed that section. Thanks for the fast reply :) |
To measure startup latency with your own config: time (repeat 100 zsh -dfis <<< 'source ~/.p10k.zsh; source ~/powerlevel10k/powerlevel10k.zsh-theme') Note that latency depends on the environment in which you measure it. E.g., startup latency is higher in a git repo. If you have |
I see, in my case I was comparing a relative startup time difference of both prompts launching in the home dir, with the same set of tools installed. But it makes sense now, powerlevel10k is targeting to optimize the performance of long-running sessions by sacrificing a bit of startup time, and async spaceship has the opposite goal. Thanks again 🙂 |
I don't think there is an unavoidable trade off between these goals. Maybe sometimes you have to choose one over the other but in many cases you can have both. Powerlevel10k is slow to start and fast to use simply because I optimized for the latter without caring for the former. Things you don't care about tend to be slow but it doesn't mean they cannot be made fast. |
Out of curiosity, any idea if automatically running |
Agreed. If you want, we can re-open the issue so that it can attract others interested in this 😉 |
Good point, although in my specific case, I believe antigen is doing that already. |
Last time I checked, it had no effect. There isn't that much source code and parsing is relatively fast. If I recall correctly, about 60ms is spent on starting gitstatusd and 70ms on converting Note that p10k is also async. This fact isn't advertised on the homepage because it's almost never relevant. However, if your machine is very slow and you end up in a very large git repo, you'll notice it. The async Git UI is superb. It's a shame almost no p10k users have ever seen it. |
I've an idea that might speed up startup quite a bit without too many code changes. I'll give it a shot some time next week. Will report here whether it works or not. |
Interesting seeing this thread here. I feel the same thing as @maximbaz feels. Actually that's the one thing which tiny bothering me. Zinc prompt, by robobenklein, have a great startup performance and it's fast like powerlevel10k. But haven't some features that a like... and powerlevel10k is waaay mature and stable. For someone that constantly launch new terminal instances or tmux panes(and have a slow machine) i think this point make difference. |
I've made p10k startup about 2.5-3 times faster. It's still not super fast but certainly better than before. Please give it a try and let me know if you see an improvement and whether startup latency is good enough now. Here are some benchmarks. All runs are from my desktop running Ubuntu. Current directory is powerlevel10k Git repo. 100 runs per benchmarks. Reported numbers are for a single run. Baseline: 5.01ms. time (repeat 100 zsh -dfis <<<'true') Powerlevel9k with default settings: 171ms time (repeat 100 zsh -dfis <<< 'source ~/powerlevel9k/powerlevel9k.zsh-theme') Powerlevel10k with default settings: 59.7ms With these settings p10k looks the same as p9k. time (repeat 100 zsh -dfis <<< 'source ~/powerlevel10k/powerlevel10k.zsh-theme') Powerlevel10k with
# Generated by Powerlevel10k configuration wizard on 2019-10-02 at 15:42 CEST.
# Based on romkatv/powerlevel10k/config/p10k-classic.zsh, checksum 47547.
# Wizard options: nerdfont-complete + powerline, small icons, classic, dark, time,
# slanted separators, blurred heads, blurred tails, 2 lines, dotted, right frame,
# sparse, many icons, fluent. time (repeat 100 zsh -dfis <<< 'source ~/.p10k.zsh; source ~/powerlevel10k/powerlevel10k.zsh-theme') I believe the last benchmark is the most important. For comparison, the same benchmark before my optimizations reports 231ms startup latency. Now it's 2.9 times faster. |
P.S. After zcompiling all sources the last benchmark has gotten 15% faster (68.1 ms). Here's the command I used to zcompile. for f in ~/powerlevel10k/{*.zsh-theme,**/*.zsh} ~/.p10k.zsh; do zcompile $f; done If you care about startup latency, update powerlevel10k and zcompile its sources and your |
Thanks for the continued work on making powerlevel10k awesome, Roman! Any reason not to just have the configuration wizard run your command above to compile everything? According to the zsh docs:
So even if somebody later modifies a file that the wizard compiled, the compiled version would be properly ignored. |
I was thinking the same thing. It's certainly possible. One non-trivial aspect is handling different combinations of permissions and file/directory ownership. Not too difficult. The thing that is stopping me from implementing this right now is potential interaction with plugin managers. I'll wait for the fallout from my recent optimizations to subside and then add zcompile once bug reports stop pouring in. |
FYI: I've reverted my optimizations as they were causing some issues and I don't have the time to debug them right now. Will debug and roll forward later this week. |
I've fixed bugs in my previous implementation and rolled it forward. I had to disable some optimizations for zsh < 5.4 due to bugs in quoting that I don't want to write workarounds for. I implemented a few extra optimizations. Now p10k loads in 37 ms on my machine (6x improvement). Not instant but decently fast. This time includes starting zsh, sourcing I think it's possible to shave off another 10 ms or so but more than that will be difficult. Unless someone complains loudly enough, I'll leave the code be. I also might have to revert the change if I broke something again. The changes are quite complex, so there is non-trivial risk of breakage. I would appreciate if someone on this issue could update powerlevel10k and verify that loading has gotten faster. |
@romkatv, let me ask you a newbie question (sorry for my bad english, btw). If you split up all segments in their own files, and then load only these which want to use (in this case, not that all them)... this would improve performance at some level? Or would it be the same as already is? |
@sinetoami Yes, this kind of refactoring can improve performance. By my estimate you can save about 0.5 ms for the typical config if you make the right decisions about what to factor out and what to keep in the main file. By the way, this sort of guessing game is a terribly inefficient way to optimize code. Here's a better way:
|
Yes, for me it's got faster! 👍
I want to give a try to this in a fork. Probably I will have some headaches trying to call the parts of segments from a main file... But thanks for your advice about this 👍 . EDIT |
Thanks for the confirmation!
Didn't expect you to become enthusiastic about potentially reducing zsh startup latency by 0.5 ms. But what the hell, if that's the sort of thing you want to do, who am I to judge?
I don't understand what's going on in that screencast. If you are saying that loading p10k is noticeably slower than loading zinc on your machine, it would be more useful if you describe your machine (OS, CPU, zsh version) and attach benchmark results for both themes, with their full configs, so that I (and everyone else) can replicate these results. For example, to benchmark p10k with your config: time (repeat 100 zsh -dfis <<< 'source ~/.p10k-pure.zsh; source ~/powerlevel10k/powerlevel10k.zsh-theme') Run this command several times to avoid contamination due to cold IO caches and the like. Please don't use zplugin in these benchmarks. If the latency is high, I can debug it provided that you provide the information I mentioned above. |
It was very interesting to notice that zinc prompt visually load really faster and smoother than powerlevel10k on these benchmarks what I did. However, the gitstatus on powerlevel10k it's more stable and faster than zinc. I'm not sure if it had some significant difference, but I actually think that zinc prompt load faster than powerlevel10k. OS: zinc - first time: p10k - first time: |
@sinetoami Your benchmark results indicate that p10k loads slightly faster than zinc. Now, since the results of this benchmark don't match your experience when using zsh with your real zsh config files, it means there is something in them that makes it different from the benchmark. Something that causes p10k load slower than it does in the benchmark. You can try to figure out what it is by removing parts of your config and checking when loading time improves. The first thing I would suggest is to load p10k without zplugin. Simply clone powerlevel10k repository and put |
I've watched your screencast a few more times and I think I understand what's going on there. I see that your zsh isn't very fast to load but I cannot say whether there is difference in latency between zinc and p10k. Is it possible that you perceive difference in latency because zinc is printing an empty line when it starts up? Maybe you can tell it not to print it? Or, alternatively, you can print the empty line when using p10k. I don't know at which point zinc prints the empty line so you might want to try several things in order to replicate the same delays.
Add
Add
Add I've attempted to check whether zplugin might be making things slower than they should be. The short answer is no. When powerlevel10k is the only loaded plugin, sourcing it directly is 11ms faster than loading it with zplugin. It's expected to be faster because it must take some time to load zplugin itself. The extra 11ms added by zplugin isn't much, and it might pay off if zplugin reduces the total loading time when using many plugins (I haven't tried to verify this). I've recorded a screencast showing what I've measured and how: The screencast starts with the following docker command: docker run -e LANG=C.UTF-8 -e TERM -it --rm debian:buster bash -uec '
apt update && apt install -y curl git zsh sudo nano
useradd -ms /bin/zsh me
sudo -u me sh -c "$(curl -fsSL \
https://raw.githubusercontent.com/zdharma/zplugin/master/doc/install.sh)"
>>~me/.zshrc echo "zplugin ice atload\"source config/p10k-pure.zsh\" lucid
zplugin light romkatv/powerlevel10k
# source ~/.zplugin/plugins/romkatv---powerlevel10k/config/p10k-pure.zsh
# source ~/.zplugin/plugins/romkatv---powerlevel10k/powerlevel10k.zsh-theme"
exec su - me' It installs zsh and zplugin on Debian and logs in as a user with the following ### Added by Zplugin's installer
source '/home/me/.zplugin/bin/zplugin.zsh'
autoload -Uz _zplugin
(( ${+_comps} )) && _comps[zplugin]=_zplugin
### End of Zplugin installer's chunk
zplugin ice atload"source config/p10k-pure.zsh" lucid
zplugin light romkatv/powerlevel10k
# source ~/.zplugin/plugins/romkatv---powerlevel10k/config/p10k-pure.zsh
# source ~/.zplugin/plugins/romkatv---powerlevel10k/powerlevel10k.zsh-theme Note that powerlevel10k and its config are loaded with zplugin. After logging in, the current directory is changed to The following command is used to measure zsh startup latency: time ( repeat 100 zsh -is <<< '' ) It repeatedly starts interacive zsh sessions and exits them once the first prompt renders. The command takes 5.115s (51ms per run). Then source ~/.zplugin/plugins/romkatv---powerlevel10k/config/p10k-pure.zsh
source ~/.zplugin/plugins/romkatv---powerlevel10k/powerlevel10k.zsh-theme After starting a new zsh session everything proceeds as before. This time the benchmark completes in 4.016s (40ms per run). Thanks to docker, it should be relatively straightforward to reproduce this screencast for everyone who wishes to do so. |
@romkatv I've just tested and it is now significantly better, nice work! I haven't performed any measurements or comparisons against spaceship, but the terminal startup now feels sufficiently fast that I don't feel any inconvenience. I will give it a longer try and let you know if I spot anything weird. |
Thanks for verifying! With two confirmations and no complaints I consider this issue resolved. (@sinetoami We can still continue the discussion here if you like.)
I have. Your Spaceship fork loads 15-20ms faster. To convert it to relative zsh startup latency improvement you need to know your total zsh startup latency. It's easy to measure. time (repeat 100 zsh -is </dev/null) Look at With Spaceship (async) I get 170ms, meaning that zsh starts 10% faster. Your numbers may be different, and the speedup may or may not matter to you.
Awesome. Do let me know if anything is broken, missing, inconvenient or just feels off. High-quality bug reports and feature requests are gold to me. They are the only means I have for discovering what users want. |
Used to have it there but then moved to https://github.com/romkatv/powerlevel10k/blob/master/powerlevel10k.zsh-theme because it reduces the amount of code where users can fuck up the options. I think antigen is the culprit. It reverts options after sourcing https://github.com/romkatv/powerlevel10k/blob/master/powerlevel10k.zsh-theme. I've added Please update powerlevel10k, remove |
Could you explain what is happening in that gif? At the beginning there is one big terminal window. Then you press something and the window splits in two. What is the relationship between the original window and the two new windows? Do I understand it correctly that the right window of the two is the original window that has been resized, and the left window is a new shell? Can you reproduce this problem if you update powerlevel10k? Are you using a plugin manager? |
I was about to report that I still reproduce the issue, but turns out I had to manually In general, I think we need some better story around regenerating those files. For example, if I modify I would expect this:
|
Sorry about that. I forgot to change one more line in my commit. Fixed now.
That's how it works. Do you see something else? |
Just updated again, that's how it works now with the latest At a glance everything is perfect now! I'll report if I see anything weird 😉 |
It should've worked this way even before the last commit. There might be bugs though. The interaction between different caches and zsh instances that run simultaneously but with different settings is quite complex. I did think about all this while writing code and I also tested it a bit, so in theory it's supposed to work reasonably well even in tricky cases.
Thanks! |
I will try. So, I'm i3-gaps user. When I press a shortcut the i3 opens a new terminal. What I wanted to show you with the gif was the
Still.
Yes. PS.: If you don't understand me, feel free to say. My English is terrible I know that, but I can try to figure it out a better way to explain. 👍 |
@sinetoami Please update powerlevel10k and restart zsh. It'll probably show you an error. Apply the recommended solution. Does it work now? |
FYI: The configuration wizard now enables instant prompt automatically. In addition to adding the stanza at the top of (( ! ${+functions[p10k-instant-prompt-finalize]} )) || p10k-instant-prompt-finalize It's not strictly necessary but it allows me to fix some of the issues that people can run into. For example, the issue @sinetoami is having. One user has reported that they cannot close zsh with Ctrl-D when instant prompt is enabled. It's normal that Ctrl-D does nothing if you press it before everything is fully initialized (instant prompt doesn't change this), but this user says that Ctrl-D stops working altogether. I'm unable to reproduce this but I'll keep trying. Please try it too and let me know if it works for you or not. |
I'm using |
@romkatv I won't like to say that, but the update made it even worse than before 😕. |
Could you try to provide a minimal possible |
@maximbaz yes, yes. I actually did that. Starting with the |
@sinetoami What's the smallest number of actions that you need to take in order to get any kind of brokenness in your prompt (having a Once you find that shortest possible chain of action that shows brokenness, figure out the shortest possible zshrc config that will still demonstrate the issue when you perform those actions. Can you reproduce the issue with this config? if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
POWERLEVEL9K_DISABLE_CONFIGURATION_WIZARD=true
source ~/powerlevel10k/powerlevel10k.zsh-theme
(( ! ${+functions[p10k-instant-prompt-finalize]} )) || p10k-instant-prompt-finalize If not, what do you need to add to the config to get brokenness? Is this something you could try?
No updates are coming until I can reproduce this. You are the only one who can help with it. |
@romkatv I will try to figure it out this by myself for a while before relate here what you need. I will be back with a better answer. |
@sinetoami I encourage you to post your findings as you go. I might be able to guess the culprit before you find the smallest possible test case. |
@sinetoami I took your public dotfiles and tried to reproduce the issue. Here's my command: docker run -e LANG=en_US.utf8 -e TERM -it --rm archlinux/base bash -uexc '
cd
pacman -Syu --noconfirm
pacman -Sy --noconfirm zsh git curl gawk nano
sh -c "$(curl -fsSL https://raw.githubusercontent.com/zdharma/zplugin/master/doc/install.sh)"
git clone https://github.com/sinetoami/dotfiles.git
git clone https://github.com/asdf-vm/asdf.git ~/.asdf
shopt -s dotglob
cp -r ~/dotfiles/zsh/* ~/
ln -s /root /home/snio
cat >~/instant-zsh.zsh <<END
instant-zsh-pre() {
if [[ -r "\${XDG_CACHE_HOME:-\$HOME/.cache}/p10k-instant-prompt-\${(%):-%n}.zsh" ]]; then
source "\${XDG_CACHE_HOME:-\$HOME/.cache}/p10k-instant-prompt-\${(%):-%n}.zsh"
fi
}
instant-zsh-post() {
(( ! \${+functions[p10k-instant-prompt-finalize]} )) || p10k-instant-prompt-finalize
}
END
cat >~/.zshenv <<END
function keychain() false
function ruby() false
END
exec zsh' It works fine, so it's not zsh configs that break stuff. I then went ahead and tried splitting terminal windows in different terminals. I managed to reproduce something that looks quite similar to your issue by opening a tab in Tilix and then clicking "Add terminal right”. It shrinks the current terminal to 50% of its width and creates another terminal to the right of it with the same width. The new terminal has broken prompt. After debugging this I found out what appears to be a bug somewhere. If I add the following lines to the very top of zshrc: echo $COLUMNS
/bin/true
echo $COLUMNS I'll get this output when clicking "Add terminal right”.
40 is the correct answer, 80 isn't. I don't know if it's a bug in zsh or Tilix and what the proper workaround is. For now I added a call to |
Still the same behavior.
Interesting that you noticed that. I repeated these steps with But here the actions that show brokenness for me. I'm a I don't know if what I said is sufficient for your analysis. Let me know if don't. Update: |
@sinetoami Thanks for the info. I think I have the complete picture now. tl;dr: There are two low level bugs that break zsh prompt. One triggers when you resize your terminal window. The other -- when your prompt is printed very quickly after a terminal is created. None of these are specific to powerlevel10k and can be reproduced with plain zsh with very simple prompt. Let's first deal with the breakage of the left (original) terminal when you split a terminal window. What happens here is that the original terminal gets shrunk. That is, its width gets reduced. There are two ways terminals handle resizing. The first is to simply erase a portion of the terminal window when shrinking, and add empty space when expanding. The second is to reflow all text. Reflowing preserves all content in the terminal window but it will wrap around differently because of the different window width. Here's a demonstration of both.
PROMPT='${(pl.$COLUMNS..-.)}'$'\n> ' zsh -f --prompt-subst
This is what I get with urxvt, which uses the first method of handling terminal resizing. Initial (after step 2): Shrunk (after step 3): Expanded (after step 4): Note that the last prompt is always correct. This is because urxvt sends And here's how it looks in GNOME Terminal, which reflows text on resizing. Initial (after step 2): Shrunk (after step 3): Expanded (after step 4): Notice that old prompts maintain their content when the terminal is resized. If you used Bash, the current prompt would also keep its content. In zsh, however, the current prompt gets repainted after the window is resized and the text is reflown. Zsh tries to repaint it on the same location where it was before the window got resized, but it gets it wrong and repaints the new prompt one line below the intended, so a part of the previous prompt remains on the screen. This is why you see more dashes after the terminal window has been shrunk. The extra dashes are the ghosts of the current prompt that haven't been erased after the window got shrunk. I've attempted to fix this issue in zsh but then dropped it. See #175. So the current state of affairs is that in most terminals zsh prompt breaks when you resize the terminal window. This problem is not specific to powerlevel10k. It's also not specific to instant prompt although it manifests differently. Basically, when using instant prompt, it becomes more apparent. To see what I mean, try the following in GNOME Terminal.
PROMPT='${(pl.$COLUMNS..-.)}'$'\n> ' zsh -f --prompt-subst
Shrunk (after step 3): Scrolled up (after step 4): So, after shrinking it looked like everything is fine, but in fact there was a mess above the view port. Now let's deal with the breakage of the right (newly created) terminal when you split a terminal window. What happens here is that the TTY (or PTY) for the new terminal originally reports its size as 24 x 80. A few milliseconds later the TTY gets "resized" and the shell receives
typeset COLUMNS LINES
PROMPT='left> '
RPROMPT='<right'
return
Here's what I've got after starting The left window is the original. Notice that it reports correct dimensions (10 x 90 is what I set as the default size in Tilix preferences). The right window reports incorrect size of 24 x 80, has the dreaded inverted So this problem always existed. How come you never noticed this until you enabled instant prompt? The reason is simple. Your prompt wasn't fast enough to be rendered before the first Upstream bug reports:
I'm yet unsure what do to about this in Powerlevel10k. |
I've written a more robust workaround for the bug that causes I don't plan to do anything about prompts that get broken when the terminal window is resized. Thus, when you split a terminal window, all prompts except the current prompt may be broken in the original terminal. There is another issue with instant prompt that is much more severe than these. If your zshrc can sometimes ask for console input (e.g., a keyring password, or Update [Y/n]?) while loading, instant prompt will break stuff. How exactly it'll break stuff depends on the tool that wants to interact with the user. I've reverted the change to the configuration wizard so that it no longer enables instant prompt. I've also added the following note to the docs:
If your zshrc never asks for console input, there is nothing for you to worry about. If some part of it can ask for console input, it needs to be done before instant prompt. I'm looking for a better solution but don't have good ideas at the moment.. |
Hmm nice catch... Have you considered introducing some sort of a hook like "prompt_finished_loading" so that users can put commands that request console input in them? |
I don't get credit for finding this issue. It was reported by users whose zsh broke.
Such commands need to run before instant prompt. They cannot be run between the instant and the real prompts because they'll eat buffered keybard input (things like |
First of all, nice answer 👍. I've followed the steps you did and you completely right. With
The
Very interesting. But... Why you and @maximbaz don't notice that before I mention? Power of processing or something slow down
Still prints. Every time on |
When I open a tab in GNOME (whether the first or in addition to existing tabs), terminal dimensions are always reported correctly. When I launch Tilix, terminal dimensions are always reported correctly. They are only incorrect when I create additional tabs in Tilix. By the way, there is at least 100 people using instant prompt right now, likely many more. The error you are seeing is peculiar to your configuration, which is rare.
Let's stick with () {
emulate -L zsh
typeset -m 'ZSH_VERSION|VTE_VERSION'
command grep -E 'VTE_VERSION|stty' "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
} Post the output here. Describe what you do to trigger the bug with gnome-terminal.
|
While at it, please also do the following. Add this code at the top of your setopt trapsasync
trap 'echo WINCH ${LINES}x${COLUMNS}' WINCH
echo BEGIN ${LINES}x${COLUMNS}
sleep 1
echo END ${LINES}x${COLUMNS}
return Then do the same thing that you normally do with GNOME Terminal that would trigger the bug. Post here the output. |
FYI: Another user with a similar setup to @sinetoami has kindly helped with debugging this issue. You can find some details in gnunn1/tilix#1777. I've implemented (what I believe to be) a robust workaround for VTE bugs, written docs, added warnings and enabled instant prompt in the configuration wizard (there is a new screen that asks about it). You can trigger one warning by adding If I’ve messed up things too badly, or overestimated the ability of users to understand this complex feature, I might have to revert some stuff later. Waiting for bug reports to start rolling in. |
ZSH_VERSION=5.7.1
VTE_VERSION=5802
Enabling the instant prompt feature and just open a new terminal, tmux pane or terminal tab. With and without using plugins manager the same thing happens.
No. Yes.
Yes. I made a fresh install of my zsh settings (from scratch) using my SSD. And the same happens too.
Always shows: BEGIN 24x80
END 24x80 In the very left prompt(the most old one) prints this: WINCH 37x72
WINCH 37x48
WINCH 37x35
WINCH 37x28 In this case, I had 4 terminals opened, if I open one more terminal it will output a new PS.: sorry for the delay. I'm very busy. |
No worries. In case you've missed my last comment:
|
Hi there, I'm not sure I find a fix in this thread. I'm in macOS BigSur 11.4
Thanks in advance for the help |
@Miguel-Bento-Github Please open a separate issue. |
Hey @romkatv,
You have sparkled my interest in spaceship-prompt/spaceship-prompt#734, so first of all thanks for that 😉
I'm very interested to give this prompt a try, so I installed it using
antigen
and followed the initial wizard to configure the prompt.While the experience in general feels smooth, I noticed that the startup time is noticeably slower than what I'm used to with my async version of spaceship. I can't give you any numbers, and to be honest I didn't dig deeply into powerlevel configuration to see what can be optimized (I only tried to disable a bunch of segments to no avail), but I did ask a friend for his perception (who I know also uses my async fork) and he confirms that the startup feels slower.
To clarify, by startup I mean the period of time between when I launch a new terminal instance and when the prompt is rendered so I can start typing my commands.
So maybe to start the discussion with something, have you heard a similar feedback before? Do you have any idea what might be the cause? Have you specifically attempted to optimize the startup time, or it hasn't been your focus so far?
I'm happy to assist with whatever I can, running experiments, performing benchmarks (how?), etc. At this point I dont have a powerlevel configuration I like (so we can start with some default and use it as an example).
I'm on Arch Linux using kitty terminal, zsh 5.7.1.
To me personally it's very important to get startup time to a minimum, I launch new terminal windows all the time and it feels annoying when I can notice the "loading". This is a lot more annoying than watching slow sections load (as long as they are asynchronous and not blocking my typing), so if I had to choose, I'd rather have slower async sections but faster startup.
🙂
The text was updated successfully, but these errors were encountered: