Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index



because the topic of shells for the build system came up on IRC:

in [1] it is claimed that dash is faster, that could be relevant to us
given how we spawn boatloads of shells: "The boot speed improvements in
Ubuntu 6.10 were often incorrectly attributed to Upstart ... These
improvements were in fact largely due to the changed /bin/sh."

also man bash says:

BUGS
       It's too big and too slow.

following numbers are from my Fedora 17 system, with the toy attachment
that spawns 100k shells running "true" (only one run each):

[0] ms@bastet:~ > SHELL=/bin/bash time ./a.out 
/bin/bash
92.95user 113.48system 3:45.26elapsed 91%CPU (0avgtext+0avgdata 1276maxresident)k
0inputs+0outputs (0major+37438873minor)pagefaults 0swaps

[0] ms@bastet:~ > ls -l /bin/sh
lrwxrwxrwx. 1 root root 4  5. Aug 23:25 /bin/sh -> bash
[0] ms@bastet:~ > SHELL=/bin/sh time ./a.out 
/bin/sh
93.47user 112.89system 3:45.37elapsed 91%CPU (0avgtext+0avgdata 1276maxresident)k
0inputs+0outputs (0major+37338986minor)pagefaults 0swaps

[0] ms@bastet:~ > SHELL=/bin/dash time ./a.out 
/bin/dash
1.11user 9.06system 1:34.89elapsed 10%CPU (0avgtext+0avgdata 608maxresident)k
0inputs+0outputs (0major+19148968minor)pagefaults 0swaps

because i couldn't believe the difference i thought perhaps my .bashrc
makes it much slower so i've cleared it and logged in via ssh, which
makes it not that much faster:

-bash-4.2$ SHELL=/bin/sh time ./a.out
/bin/sh
85.96user 110.53system 3:38.24elapsed 90%CPU (0avgtext+0avgdata 1264maxresident)k
0inputs+0outputs (0major+37067614minor)pagefaults 0swaps

so clearly there is a measurable benefit to using /bin/dash as shell.

considering the above i'd like the build system to continue to support
non-bash shells and also it would be great to have a tinderbox using
non-bash /bin/sh to build in order to detect breakage (this does not
require a new tinderbox, at least for Fedora there is a "dash" package,
it would just require symlinking /bin/sh to it).

on a related note it would also be great to have a tinderbox with GNU
make 3.81, because (on non-windows platforms) that is supposed to work
but breaks from time to time because only Debian still ships it by
default AFAIK.

[1] https://wiki.ubuntu.com/DashAsBinSh




Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.