In article <
AABWVLFJEAQAA...@WStation2.stz-e.de>,
Michael Baeuerle <
michael....@gmx.net> wrote:
>In den meisten Fällen ist mir die Geschwindigkeit relativ egal. Eine
Das stimt heute allerdings wirklich.
Als ich 1982 den Prototypen meines History Editors geschrieben habe, hatte ich
noch keine Shell Source und mußte das Kommando mit "system()" aufrufen. Das hat
damals über eine Sekunde Overhead bedeutet.
>Ausnahme ist GNU configure. Ich hatte es hier mal erwähnt, dass die ksh
Mich interessiert das Ganze auch eigentlich nur wegen configure auf Cygwin,
da schlafen einem die Füße ein... Das Configure der Schily Tools benötigt auf
Cywin unter VirtualBox etwa eine dreivirtel Stunde mit meinem Bourne Shell
schaffe ich es dort immerhin unter 30 Minuten.
>auf meinem alten AIX da gar nicht damit klar kommt. Wenn ich stattdessen
>eine bash nehme, dann läuft die Sache deutlich schneller durch. Und bash
>ist dafür vmtl. auch nicht die beste Wahl (zu fett für die langsame
>Maschine).
Ich weis nicht was Du da für ein Configure verwendet hast, aber das Schily
Configure basiert absichtlich auf GNU Configure-2.13, weil alles was von der
FSF danach kam ein Albtraum war. So hat ein Configure Lauf mit einem neueren
GNU configure auf meiner Sun3-60 mal über 4 Stunden gedauert, weil das Teil
jeden Einzeltest mit einem separaten Bash Aufruf bedient hat.
Das allerneueste AIX (7.1 - meldet sich mit uname als 1.7 ;-) kommt immer noch
mit ksh88 als Default, hat aber unter "ksh93" einen ksh93t von 2009, das ist
schon sehr Anständig. Der ksh88 ist dort vermutlich weil ksh93 den POSIX Test
nicht besteht.
>Wenn eine andere Shell GNU configure deutlich beschleunigen könnte, dann
>wäre das mal ein ernsthafter Grund sie genauer anzuschauen.
ksh93 benötigt zu Hause mit dem configure von den SchilyTools 35 Sekunden,
während bash dafür 56 Sekunden benötigt.
Der OpenSolaris Bourne Shell benötigt unter diesen Randbedingungen 46 Sekunden,
dash 42 und mein Burne Shell knapp über 40 Sekunden.
Wenn ich dem ksh93 alle UNIX Basiskommandos als Builtin abschalte (Busybox hat
sich diese Idee mal vom ksh93 abgeschaut sagt David ;-), dann ist ksh93 in
etwa so schnell wie mein Bourne Shell, benötigt aber knapp 20% weniger Forks.
Meine Vermutung ist: Das was ksh93 durch einen überarbeiteten Interpreter
durch weniger fork() Aufrufe gewinnt, verliert er wieder durch seine Größe.
Übrigens, wenn man configure (wie bei den Schily Tools und anderer SW von mir)
sauber in eine Make Regel einbettet, dann kommt ja das Cache-File zum Tragen
und bei einer Erweiterung um einen weiteren Test muß es dann nur noch diesen
Test wirklich aufrufen. Ein solcher configure Lauf des Configure Skripts der
Schily Tools benötigt dann mit dem OpenSolaris Bourne Shell 12 Sekunden, mit
dem ksh93 6,5 Sekunden mit bash 16,5 Sekunden und mit dash/bosh 10,5 Sekunden.
Ob ein anderer Shell aktuelle Versionen von GNU autoconf beschleunigen kann,
häng im Wesentlichen davon ab, ob der Code nicht vielleicht bash spezifisch
ist, bzw. wie man das Skript dazu zwingen kann alles durchgängig mit dem
angegebenen Shell durchzuführen.
Für meine Test mit dem auf GNU autoconf-2.13 basierenden Schily Autoconf
verwende ich Kommandozeilen in dieser Art:
CONFIG_SHELL=/opt/schily/bin/bosh /opt/schily/bin/bosh ./configure
Ob bzw. wie man das mit neueren FSF Versionen schafft, habe ich mir noch nicht
angesehen, würde mich aber interessieren.
Aktuell verwende ich übrigens mein configure als Test um sicherzustellen, daß
alle Basisfeatures nach einem Umbau weiter funktionieren und um
sicherzustellen, daß ich durch einen Umbau nichts verlangsamt habe.