Verarbeitungszeit von grep und sed

19/10/2010 - 10:58 von Andre Tann | Report spam
Hallo zusammen,

bislang war ich immer davon ausgegangen, daß eine Verkettung von
Befehlen mehr Zeit in Anspruch nimmt, als wenn ich gleich alles von
einem Befehl erledigen lasse. Beispiel:

time grep delay= /var/log/mail | sed -e 's_.*\(delay[^,]*,\).*_\1_g'
[Ausgabe]
real 0m0.239s
user 0m0.228s
sys 0m0.010s


Aber:

time sed -n -e '/delay=/s/.*\(delay[^,]*,\).*/\1/gp' /var/log/mail
[Ausgabe]
real 0m0.405s
user 0m0.402s
sys 0m0.002s

Warum braucht sed... bei real und user fast doppelt so lange als
grep... | sed...?

Danke+Gruß!

Andre Tann

Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+unsubscribe@opensuse.org
Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken
Sie eine Mail an: opensuse-de+help@opensuse.org
 

Lesen sie die antworten

#1 Andre Tann
19/10/2010 - 11:49 | Warnen spam
Servus Roman,

Roman Fietze, Dienstag 19 Oktober 2010:

Kann es sein, dass du hier nur die Zeit von grep, aber nicht die von
sed mitmisst.

Denn es gilt wieder der alte Spruch: "wer misst misst Mist, wer viel
misst misst viel Mist". ;)

time bash -c "grep delay= /var/log/mail | sed -e
's_.*\(delay[^,]*,\).*_\1_g'"

Zudem wuerde ich die Ausgabe zum Testen der Laufzweit lieber erst mal
nach /dev/null oder wenigstens eine Datei umleiten.



# bash -c "time \
sed -n -e '/delay=/s/.*\(delay[^,]*,\).*/\1/gp' /var/log/mail > /dev/null"

real 0m0.431s
user 0m0.427s
sys 0m0.004s


# bash -c "time grep delay= /var/log/mail | \
sed -e 's_.*\(delay[^,]*,\).*_\1_g' > /dev/null"

real 0m0.242s
user 0m0.243s
sys 0m0.005s

Sieht aus, wie wenn der gemessene Mist zumindest nicht allzu groß war ;)


Andre Tann

Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+
Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken
Sie eine Mail an: opensuse-de+

Ähnliche fragen