zsh-users
 help / Atom feed
* slow startup of zsh (1x slower than bash)
@ 2018-12-03 16:27 Peng Yu
  2018-12-03 17:37 ` Vadim A. Misbakh-Soloviov
  2018-12-07  2:19 ` Sebastian Gniazdowski
  0 siblings, 2 replies; 7+ messages in thread
From: Peng Yu @ 2018-12-03 16:27 UTC (permalink / raw)
  To: zsh-users

Hi,

The following example shows that zsh startup time is much slower than
other shells. Can this be improved to at least as fast as bash?

==> main.sh <==
#!/usr/bin/env bash
# vim: set noexpandtab tabstop=2:

set -v
TIMEFORMAT=%R
time for ((i=0;i<100;++i))
do
    :
done
time for ((i=0;i<100;++i))
do
    ./script.sh
done
time for ((i=0;i<100;++i))
do
    ./script.dash
done
time for ((i=0;i<100;++i))
do
    ./script.bash
done
time for ((i=0;i<100;++i))
do
    ./script.ksh
done
time for ((i=0;i<100;++i))
do
    ./script.zsh
done
==> script.bash <==
#!/usr/local/bin/bash
==> script.dash <==
#!/usr/local/bin/dash
==> script.ksh <==
#!/usr/local/bin/ksh
==> script.sh <==
#!/bin/sh
==> script.zsh <==
#!/usr/local/bin/zsh
$ ./main.sh
TIMEFORMAT=%R
time for ((i=0;i<100;++i))
do
    :
done
0.001
time for ((i=0;i<100;++i))
do
    ./script.sh
done
0.339
time for ((i=0;i<100;++i))
do
    ./script.dash
done
0.387
time for ((i=0;i<100;++i))
do
    ./script.bash
done
0.486
time for ((i=0;i<100;++i))
do
    ./script.ksh
done
0.538
time for ((i=0;i<100;++i))
do
    ./script.zsh
done
0.953

-- 
Regards,
Peng

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: slow startup of zsh (1x slower than bash)
  2018-12-03 16:27 slow startup of zsh (1x slower than bash) Peng Yu
@ 2018-12-03 17:37 ` Vadim A. Misbakh-Soloviov
  2018-12-07  2:19 ` Sebastian Gniazdowski
  1 sibling, 0 replies; 7+ messages in thread
From: Vadim A. Misbakh-Soloviov @ 2018-12-03 17:37 UTC (permalink / raw)
  To: zsh-users

try to put "zsh -f" there, instead of just "zsh", and take a look at the time 
after that.



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: slow startup of zsh (1x slower than bash)
  2018-12-03 16:27 slow startup of zsh (1x slower than bash) Peng Yu
  2018-12-03 17:37 ` Vadim A. Misbakh-Soloviov
@ 2018-12-07  2:19 ` Sebastian Gniazdowski
  2018-12-07  2:57   ` Peng Yu
  1 sibling, 1 reply; 7+ messages in thread
From: Sebastian Gniazdowski @ 2018-12-07  2:19 UTC (permalink / raw)
  To: pengyu.ut; +Cc: Zsh Users

On Mon, 3 Dec 2018 at 17:28, Peng Yu <pengyu.ut@gmail.com> wrote:
>
> Hi,
>
> The following example shows that zsh startup time is much slower than
> other shells. Can this be improved to at least as fast as bash?
>

Is it the last zsh version that's being tested? There was 2x startup
improvement at 5.4 or something like this.

Also, Zplugin can load plugins after prompt, I load 20 plugins, and my
startup times are:

repeat 5 { time /usr/local/bin/zsh-5.6.2-dev-1 -i -c exit }
/usr/local/bin/zsh-5.6.2-dev-1 -i -c exit  0,09s user 0,04s system
117% cpu 0,111 total
/usr/local/bin/zsh-5.6.2-dev-1 -i -c exit  0,10s user 0,05s system
119% cpu 0,130 total
/usr/local/bin/zsh-5.6.2-dev-1 -i -c exit  0,11s user 0,05s system
121% cpu 0,129 total
/usr/local/bin/zsh-5.6.2-dev-1 -i -c exit  0,09s user 0,04s system
115% cpu 0,119 total
/usr/local/bin/zsh-5.6.2-dev-1 -i -c exit  0,09s user 0,04s system
117% cpu 0,109 total

I even load prompt after a default prompt, ~ 100 ms after it. The
Star-Trek console-like impression this gives can be visible here:
https://asciinema.org/a/156726 – much is going on, automatically, in
background.

> --
> Regards,
> Peng

-- 
Sebastian Gniazdowski
News: https://twitter.com/ZdharmaI
IRC: https://kiwiirc.com/client/chat.freenode.net:+6697/#zplugin
Blog: http://zdharma.org

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: slow startup of zsh (1x slower than bash)
  2018-12-07  2:19 ` Sebastian Gniazdowski
@ 2018-12-07  2:57   ` Peng Yu
  2018-12-07 16:13     ` Julien Nicoulaud
  0 siblings, 1 reply; 7+ messages in thread
From: Peng Yu @ 2018-12-07  2:57 UTC (permalink / raw)
  To: sgniazdowski; +Cc: zsh-users

On Thu, Dec 6, 2018 at 8:20 PM Sebastian Gniazdowski
<sgniazdowski@gmail.com> wrote:
>
> On Mon, 3 Dec 2018 at 17:28, Peng Yu <pengyu.ut@gmail.com> wrote:
> >
> > Hi,
> >
> > The following example shows that zsh startup time is much slower than
> > other shells. Can this be improved to at least as fast as bash?
> >
>
> Is it the last zsh version that's being tested? There was 2x startup
> improvement at 5.4 or something like this.

Here is the version. I have not set up zsh to do anything fancy. I
guess the slowness of startup is because zsh does too many things
upfront and has more features than other shells, and the increase in
startup time the price that zsh has to pay.

$ zsh --version
zsh 5.6.2 (x86_64-apple-darwin17.7.0)
$ cat ~/.zshrc
# Lines configured by zsh-newuser-install
HISTFILE=~/.histfile
HISTSIZE=1000
SAVEHIST=1000
bindkey -e
# End of lines configured by zsh-newuser-install
# The following lines were added by compinstall
zstyle :compinstall filename '/Users/pengy/.zshrc'

autoload -Uz compinit
compinit
# End of lines added by compinstall

> Also, Zplugin can load plugins after prompt, I load 20 plugins, and my
> startup times are:
>
> repeat 5 { time /usr/local/bin/zsh-5.6.2-dev-1 -i -c exit }
> /usr/local/bin/zsh-5.6.2-dev-1 -i -c exit  0,09s user 0,04s system
> 117% cpu 0,111 total
> /usr/local/bin/zsh-5.6.2-dev-1 -i -c exit  0,10s user 0,05s system
> 119% cpu 0,130 total
> /usr/local/bin/zsh-5.6.2-dev-1 -i -c exit  0,11s user 0,05s system
> 121% cpu 0,129 total
> /usr/local/bin/zsh-5.6.2-dev-1 -i -c exit  0,09s user 0,04s system
> 115% cpu 0,119 total
> /usr/local/bin/zsh-5.6.2-dev-1 -i -c exit  0,09s user 0,04s system
> 117% cpu 0,109 total
>
> I even load prompt after a default prompt, ~ 100 ms after it. The
> Star-Trek console-like impression this gives can be visible here:
> https://asciinema.org/a/156726 – much is going on, automatically, in
> background.
>
> > --
> > Regards,
> > Peng
>
> --
> Sebastian Gniazdowski
> News: https://twitter.com/ZdharmaI
> IRC: https://kiwiirc.com/client/chat.freenode.net:+6697/#zplugin
> Blog: http://zdharma.org



-- 
Regards,
Peng

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: slow startup of zsh (1x slower than bash)
  2018-12-07  2:57   ` Peng Yu
@ 2018-12-07 16:13     ` Julien Nicoulaud
  2018-12-07 16:58       ` Peng Yu
  0 siblings, 1 reply; 7+ messages in thread
From: Julien Nicoulaud @ 2018-12-07 16:13 UTC (permalink / raw)
  To: pengyu.ut; +Cc: sgniazdowski, Mailing-list zsh-users

[-- Attachment #1: Type: text/plain, Size: 3141 bytes --]

I don't think so, zsh is faster than bash for me without rc files:

❯ repeat 5 { time bash --norc --noprofile -c exit }
took 0,011s (100% cpu)
took 0,011s (98% cpu)
took 0,011s (100% cpu)
took 0,011s (100% cpu)
took 0,011s (99% cpu)
❯ repeat 5 { time zsh -fc exit }
took 0,002s (89% cpu)
took 0,001s (90% cpu)
took 0,001s (92% cpu)
took 0,001s (92% cpu)
took 0,001s (91% cpu)

same with rc files:
❯ repeat 5 { time bash -c exit }
took 0,028s (89% cpu)
took 0,022s (100% cpu)
took 0,022s (100% cpu)
took 0,022s (100% cpu)
took 0,023s (99% cpu)
❯ repeat 5 { time zsh -c exit }
took 0,008s (91% cpu)
took 0,008s (92% cpu)
took 0,007s (92% cpu)
took 0,007s (92% cpu)
took 0,005s (91% cpu)

Julien

Le ven. 7 déc. 2018 à 03:57, Peng Yu <pengyu.ut@gmail.com> a écrit :

> On Thu, Dec 6, 2018 at 8:20 PM Sebastian Gniazdowski
> <sgniazdowski@gmail.com> wrote:
> >
> > On Mon, 3 Dec 2018 at 17:28, Peng Yu <pengyu.ut@gmail.com> wrote:
> > >
> > > Hi,
> > >
> > > The following example shows that zsh startup time is much slower than
> > > other shells. Can this be improved to at least as fast as bash?
> > >
> >
> > Is it the last zsh version that's being tested? There was 2x startup
> > improvement at 5.4 or something like this.
>
> Here is the version. I have not set up zsh to do anything fancy. I
> guess the slowness of startup is because zsh does too many things
> upfront and has more features than other shells, and the increase in
> startup time the price that zsh has to pay.
>
> $ zsh --version
> zsh 5.6.2 (x86_64-apple-darwin17.7.0)
> $ cat ~/.zshrc
> # Lines configured by zsh-newuser-install
> HISTFILE=~/.histfile
> HISTSIZE=1000
> SAVEHIST=1000
> bindkey -e
> # End of lines configured by zsh-newuser-install
> # The following lines were added by compinstall
> zstyle :compinstall filename '/Users/pengy/.zshrc'
>
> autoload -Uz compinit
> compinit
> # End of lines added by compinstall
>
> > Also, Zplugin can load plugins after prompt, I load 20 plugins, and my
> > startup times are:
> >
> > repeat 5 { time /usr/local/bin/zsh-5.6.2-dev-1 -i -c exit }
> > /usr/local/bin/zsh-5.6.2-dev-1 -i -c exit  0,09s user 0,04s system
> > 117% cpu 0,111 total
> > /usr/local/bin/zsh-5.6.2-dev-1 -i -c exit  0,10s user 0,05s system
> > 119% cpu 0,130 total
> > /usr/local/bin/zsh-5.6.2-dev-1 -i -c exit  0,11s user 0,05s system
> > 121% cpu 0,129 total
> > /usr/local/bin/zsh-5.6.2-dev-1 -i -c exit  0,09s user 0,04s system
> > 115% cpu 0,119 total
> > /usr/local/bin/zsh-5.6.2-dev-1 -i -c exit  0,09s user 0,04s system
> > 117% cpu 0,109 total
> >
> > I even load prompt after a default prompt, ~ 100 ms after it. The
> > Star-Trek console-like impression this gives can be visible here:
> > https://asciinema.org/a/156726 – much is going on, automatically, in
> > background.
> >
> > > --
> > > Regards,
> > > Peng
> >
> > --
> > Sebastian Gniazdowski
> > News: https://twitter.com/ZdharmaI
> > IRC: https://kiwiirc.com/client/chat.freenode.net:+6697/#zplugin
> > Blog: http://zdharma.org
>
>
>
> --
> Regards,
> Peng
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: slow startup of zsh (1x slower than bash)
  2018-12-07 16:13     ` Julien Nicoulaud
@ 2018-12-07 16:58       ` Peng Yu
  2018-12-07 18:06         ` dana
  0 siblings, 1 reply; 7+ messages in thread
From: Peng Yu @ 2018-12-07 16:58 UTC (permalink / raw)
  To: julien.nicoulaud; +Cc: Sebastian Gniazdowski, zsh-users

Not on my machine.

$ ./main.sh
time ./script.bash

real    0m0.719s
user    0m0.264s
sys    0m0.324s
time ./script.zsh

real    0m1.295s
user    0m0.360s
sys    0m0.680s

==> main.sh <==
#!/usr/bin/env bash
# vim: set noexpandtab tabstop=2:

set -v
time ./script.bash
time ./script.zsh

==> script.bash <==
#!/usr/bin/env zsh
# vim: set noexpandtab tabstop=2:

time for ((i=0;i<100;++i))
do
    /usr/local/bin/bash --norc --noprofile -c exit
done

==> script.zsh <==
#!/usr/bin/env zsh
# vim: set noexpandtab tabstop=2:

time for ((i=0;i<100;++i))
do
    /usr/local/bin/zsh -fc exit
done


On Fri, Dec 7, 2018 at 10:14 AM Julien Nicoulaud
<julien.nicoulaud@gmail.com> wrote:
>
> I don't think so, zsh is faster than bash for me without rc files:
>
> ❯ repeat 5 { time bash --norc --noprofile -c exit }
> took 0,011s (100% cpu)
> took 0,011s (98% cpu)
> took 0,011s (100% cpu)
> took 0,011s (100% cpu)
> took 0,011s (99% cpu)
> ❯ repeat 5 { time zsh -fc exit }
> took 0,002s (89% cpu)
> took 0,001s (90% cpu)
> took 0,001s (92% cpu)
> took 0,001s (92% cpu)
> took 0,001s (91% cpu)
>
> same with rc files:
> ❯ repeat 5 { time bash -c exit }
> took 0,028s (89% cpu)
> took 0,022s (100% cpu)
> took 0,022s (100% cpu)
> took 0,022s (100% cpu)
> took 0,023s (99% cpu)
> ❯ repeat 5 { time zsh -c exit }
> took 0,008s (91% cpu)
> took 0,008s (92% cpu)
> took 0,007s (92% cpu)
> took 0,007s (92% cpu)
> took 0,005s (91% cpu)
>
> Julien
>
> Le ven. 7 déc. 2018 à 03:57, Peng Yu <pengyu.ut@gmail.com> a écrit :
>>
>> On Thu, Dec 6, 2018 at 8:20 PM Sebastian Gniazdowski
>> <sgniazdowski@gmail.com> wrote:
>> >
>> > On Mon, 3 Dec 2018 at 17:28, Peng Yu <pengyu.ut@gmail.com> wrote:
>> > >
>> > > Hi,
>> > >
>> > > The following example shows that zsh startup time is much slower than
>> > > other shells. Can this be improved to at least as fast as bash?
>> > >
>> >
>> > Is it the last zsh version that's being tested? There was 2x startup
>> > improvement at 5.4 or something like this.
>>
>> Here is the version. I have not set up zsh to do anything fancy. I
>> guess the slowness of startup is because zsh does too many things
>> upfront and has more features than other shells, and the increase in
>> startup time the price that zsh has to pay.
>>
>> $ zsh --version
>> zsh 5.6.2 (x86_64-apple-darwin17.7.0)
>> $ cat ~/.zshrc
>> # Lines configured by zsh-newuser-install
>> HISTFILE=~/.histfile
>> HISTSIZE=1000
>> SAVEHIST=1000
>> bindkey -e
>> # End of lines configured by zsh-newuser-install
>> # The following lines were added by compinstall
>> zstyle :compinstall filename '/Users/pengy/.zshrc'
>>
>> autoload -Uz compinit
>> compinit
>> # End of lines added by compinstall
>>
>> > Also, Zplugin can load plugins after prompt, I load 20 plugins, and my
>> > startup times are:
>> >
>> > repeat 5 { time /usr/local/bin/zsh-5.6.2-dev-1 -i -c exit }
>> > /usr/local/bin/zsh-5.6.2-dev-1 -i -c exit  0,09s user 0,04s system
>> > 117% cpu 0,111 total
>> > /usr/local/bin/zsh-5.6.2-dev-1 -i -c exit  0,10s user 0,05s system
>> > 119% cpu 0,130 total
>> > /usr/local/bin/zsh-5.6.2-dev-1 -i -c exit  0,11s user 0,05s system
>> > 121% cpu 0,129 total
>> > /usr/local/bin/zsh-5.6.2-dev-1 -i -c exit  0,09s user 0,04s system
>> > 115% cpu 0,119 total
>> > /usr/local/bin/zsh-5.6.2-dev-1 -i -c exit  0,09s user 0,04s system
>> > 117% cpu 0,109 total
>> >
>> > I even load prompt after a default prompt, ~ 100 ms after it. The
>> > Star-Trek console-like impression this gives can be visible here:
>> > https://asciinema.org/a/156726 – much is going on, automatically, in
>> > background.
>> >
>> > > --
>> > > Regards,
>> > > Peng
>> >
>> > --
>> > Sebastian Gniazdowski
>> > News: https://twitter.com/ZdharmaI
>> > IRC: https://kiwiirc.com/client/chat.freenode.net:+6697/#zplugin
>> > Blog: http://zdharma.org
>>
>>
>>
>> --
>> Regards,
>> Peng



-- 
Regards,
Peng

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: slow startup of zsh (1x slower than bash)
  2018-12-07 16:58       ` Peng Yu
@ 2018-12-07 18:06         ` dana
  0 siblings, 0 replies; 7+ messages in thread
From: dana @ 2018-12-07 18:06 UTC (permalink / raw)
  To: Peng Yu; +Cc: julien.nicoulaud, Sebastian Gniazdowski, zsh-users

Some of the people on #zsh have seen different results, but `zsh -f`'s start-up
over-head has always been higher for me on every platform i've tested
(specifically Linux@ARM, Linux@x64, and macOS@x64). It's especially noticeable
on the Mac — but all process over-heads are exaggerated on the Mac, so.

I don't worry about it too much, because you make up for it as soon as you're
able to do something that would have required a fork() in another shell, like
sorting an array or resolving a symlink or matching files by attributes.

I suppose it might be annoying to use it for an httpd or Make shell though

dana


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, back to index

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-03 16:27 slow startup of zsh (1x slower than bash) Peng Yu
2018-12-03 17:37 ` Vadim A. Misbakh-Soloviov
2018-12-07  2:19 ` Sebastian Gniazdowski
2018-12-07  2:57   ` Peng Yu
2018-12-07 16:13     ` Julien Nicoulaud
2018-12-07 16:58       ` Peng Yu
2018-12-07 18:06         ` dana

zsh-users

Archives are clonable: git clone --mirror http://inbox.vuxu.org/zsh-users

Newsgroup available over NNTP:
	nntp://inbox.vuxu.org/vuxu.archive.zsh.users


AGPL code for this site: git clone https://public-inbox.org/ public-inbox