Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Shell startup, aliases vs. functions vs. autoloadable functions, and zcompile benefits

And here I am all the way up at ~600ms startup lag ($EMPLOYER has a busted Python3 distro that adds a lot of ms each interpreter start-up), but very low prompt lag.

Zach Riggle

On Tue, Nov 30, 2021 at 2:28 AM Mikael Magnusson <mikachu@xxxxxxxxx> wrote:
On 11/30/21, Mikael Magnusson <mikachu@xxxxxxxxx> wrote:
> On 11/30/21, Roman Perepelitsa <roman.perepelitsa@xxxxxxxxx> wrote:
>> On Tue, Nov 30, 2021 at 3:30 AM Zach Riggle <zachriggle@xxxxxxxxx> wrote:
>>> The benchmark I used
>>> $ hyperfine 'zsh -i -l "exit 0"'
>>> Obviously this is not the BEST benchmark [for checking shell startup
>>> time]
>> Obviously. It's the worst or at least a strong contender for the title.
> I think it's fine to do this (assuming he actually meant -i -l -c
> "exit 0" (missing -c in the quoted command)), if you don't do any
> weird stuff in your startup files (like you mention in your "how not
> to benchmark" section). Assuming your startup files are synchronous,
> the above will tell you how long it takes to execute your init file
> plus some other overhead, so if you do something and the number is
> lower, the thing you did will indeed make startup faster. If your
> startup files are not synchronous, then obviously nothing I said
> applies and everything you say is true. BTW, the above command can
> easily be improved for worseness:
> % time (repeat 1000; zsh -ic exit)
>> Since you care about interactive zsh performance, at least skim
>> through the homepage of zsh-bench. It'll save you time.
> % ./zsh-bench
> ==> benchmarking login shell of mikaelh ...
> zsh-bench: cannot find prompt; make sure it contains hostname or the
> last part of the current directory
> Sadly no time was saved :(.

Got it running by changing prompt_pat to %,

I'd say these values are fairly comparable :).

It would be very useful to have an option to benchmark normal
interactive shells instead of login shells btw, my profile runs stuff
like fortune which is obviously pretty slow in comparison to startup
code, and not at all interesting to benchmark. The  quoted times in
this mail is with all the -l removed.

Also, you recommend against zcompiling .zshrc in your document, but

Increasing startup time by 33% seems like a bad tradeoff to me, then
again, I know exactly how things work and am not likely to make the
mistake you mention.

Mikael Magnusson

Messages sorted by: Reverse Date, Date, Thread, Author