Re: better init.d/* : who carres ?
- To: debian-devel@lists.debian.org
- Subject: Re: better init.d/* : who carres ?
- From: Eduard Bloch <edi@gmx.de>
- Date: Wed, 21 Sep 2005 10:41:24 +0200
- Message-id: <[🔎] 20050921084124.GA21385@debian>
- Mail-followup-to: debian-devel@lists.debian.org
- In-reply-to: <20050825151756.GK2339@khazad-dum.debian.net>
- References: <20050824145040.GA6034@xpeerience.u-strasbg.fr> <dei2tl$g0m$1@news.cistron.nl> <20050824154404.GB20087@opium.palfrader.org> <1124900552.18225.67.camel@localhost.localdomain> <430D74C4.2020508@ulpmm.u-strasbg.fr> <20050825151756.GK2339@khazad-dum.debian.net>
#include <hallo.h>
* Henrique de Moraes Holschuh [Thu, Aug 25 2005, 12:17:56PM]:
> Well, as long as you don't start using stuff that breaks often, or that
> loads a ton of crap dynamically, or (even worse) is in /usr instead of /bin
> or /sbin...
>
> Note that using dash is probably MUCH faster than perl. I don't know about
> zsh.
Well, I made some tests and can proof your claim. I have just tried a
simple version of the skeleton script with /bin/true as the daemon, a
simple config file to be read and optionaly a grep call in the script.
The perl version was a straight-forward port of the script with internal
grep method. Shell compatible config file reader was stolen from apt-cacher.
Tests run with a loop like:
time for x in `seq 1000` ; do perl skeleton.pl start ; perl skeleton.pl stop; done
The results reflected my expectations, speed order:
dash < ... < perl < zsh < bash;
Perl is a lot faster than what some perl hatters try to make us believe.
With external program calls, everything became really slow while usage
of the internal Perl implementation demonstraged its advantage.
perl < ... < dash < ... < zsh < bash
Conclusion: usage of many (even simple) external programs is evil, though
it may improve readability for "some people". Replacing setting /bin/sh
link to dash instead of bash and having more than 100 init scripts I can
assume the whole boot would be 3s faster (1900Mhz box).
Personaly, I would write all init scripts in Perl but unfortunately
compatibility considerations force us to do things that suck.
Eduard.
simple skeleton:
dash:
real 0m6.538s
user 0m1.924s
sys 0m3.880s
bash:
real 0m30.406s
user 0m18.101s
sys 0m8.197s
perl:
real 0m15.195s
user 0m7.388s
sys 0m7.324s
zsh:
real 0m19.458s
user 0m8.773s
sys 0m9.429s
with external program (grep in the defaults file):
dash:
real 0m23.050s
user 0m14.409s
sys 0m6.664s
perl:
real 0m18.820s
user 0m7.452s
sys 0m7.560s
bash:
real 0m46.683s
user 0m32.754s
sys 0m13.105s
more external programs (grep ... | cut ... | wc ...):
dash:
real 0m40.917s
user 0m30.058s
sys 0m10.089s
bash:
real 1m2.397s
user 0m43.911s
sys 0m16.525s
Perl: (equivalent internal code)
real 0m15.604s
user 0m7.760s
sys 0m7.444s
--
<youam> nach duesseldorf zu freenet schaffe ich in einer verbindung auch
~5mb/s, ansonsten nur ziehend z.b. ftp.de.debian.org (dresden) ~4mb/s
<Zomb> unglaublich... die Bandbreitensäue
<youam> Zomb: hey, _du_ schickst doch für jeden einzelnen umlaut zwei byte über
die leitung...
Reply to: