Mailinglist Archive: opensuse-factory (602 mails)

< Previous Next >
Re: [opensuse-factory] Can we assume that /bin/sh is bash?
  • From: Michal Suchánek <msuchanek@xxxxxxx>
  • Date: Mon, 11 Feb 2019 12:26:45 +0100
  • Message-id: <20190211122645.713ed5a1@naga>
On Mon, 11 Feb 2019 12:18:58 +0100 (CET)
Jan Engelhardt <jengelh@xxxxxxx> wrote:

On Monday 2019-02-11 12:07, Michal Suchánek wrote:

Looking slightly more broadly if changing #!/bin/sh to something lighter
lead to a 10-20% reduction in build times for some of our slower
building packages, that is something that would interest my team and I
guess should also interest the obs team and anyone who cares about our
infrastructure usage.

Many packages that build slow spend a lot of time actually *compiling*
stuff.

Yes and no.
Build times follow the usual long-tail distribution (Pareto or something).
Hugeass packages like chromium of course spent 99% their time in g++,
while things like python-* are probably spending most of their time in
/usr/bin/build and /usr/bin/rpm and disk IO. And we don't exactly have
few packages in the {python, perl, ruby} camp, mind you.

Many packages that build slow spend a lot of time in rpm checkers.

But for different reasons.
* The compression time scales linearly with the size of the contents.
* absolute executable size roughly scales linearly with package size
(something in the ballpark of 60% of a package are executables normally;
ignoring noarch packages)
* ELF analysis (dwz et al) scales linearly with executable size
* the size of executable scales linearly with project size

Which is the reason things like chromium require exorbitant time and are very
frustrating if it happens to fail at the last moment, while packages like
cdecl
are comparatively trivial - but have a high buildroot setup cost.

And you forgot to quote the important part: is the setup cost mitigated
by shell scripts that use fast bare-bones shell and have to fork() for
every tiny task or shell scripts that fully use bash builtins?

Thanks

Michal
--
To unsubscribe, e-mail: opensuse-factory+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-factory+owner@xxxxxxxxxxxx

< Previous Next >
Follow Ups