Hallo Carsten, Carsten Meyer wrote:
Das hat mich neugierig gemacht:
time cat /var/log/messages | awk '{ print $3 }' real 0m5.155s user 0m0.800s sys 0m0.350s
time cat /var/log/messages | perl -ne 'split; print "$_[2]\n"' real 0m10.513s user 0m4.240s sys 0m0.420s
Ich denke, damit beziehst du dich auf die Aussage, daß Perl besser oder flexibler dafür geeignet ist. Meiner Meinung nach ist deine Messung (für diese spezielle Anwendung) korrekt; das Ergebnis würde ich aber nicht verallgemeinern. Bsp: Ich kannte bis vor ca. 1,5 Jahren kein Perl, aber awk. Im Rahmen eines Projektes sollte mal eben was ausgewertet werden, was ich dann mit awk realisierte. Das schließlich entstandene Programm lief dann aufgrund der Datenmenge (>=100MByte) schon so ein paar Minuten. Außerdem bestand es nicht nur aus 1 Zeile. Nach Umschreiben auf Perl (Anfänger-Perl wohlgemerkt) haben wir eine Geschwindigkeitssteigerung um den Faktor 20 bemerkt. Fazit: Für kleine, schnelle Hacks nehme ich weiter awk, aber wenn die Datenmenge groß ist, das Programm komplexer wird ist man mit Perl definitiv besser beraten. Insbesondere die Stringverwaltung und Garbage Collection ist hier um Längen schneller als in awk. Aber wie so oft unter Unix: 1. Es gibt viele Wege zum Ziel 2. Jeder benutzt das, was ihm am besten gefällt 3. Es gibt keine optimale Lösung Andreas --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com