Digital > Fefes Blog 2.0 > a2689de5
  Leserreporter: Wer schöne Verschwörungslinks für mich hat: ab an felix-bloginput (at) fefe.de!
[zurück][ältere Posting][neuere Posting]  Samstag, 23 März 2019 | Blog: 8 | No: 42787     feed-image

Zum Vergleich:

dieses Experiment von vor über 10 Jahren erinnern

Der eine oder andere Leser, der schon echt lange dabei ist, wird sich vielleicht an dieses Experiment von vor über 10 Jahren erinnern. Eines der Probleme damals war, dass ich als Quelldaten ein Logfile eines Webservers genommen habe, wo viele Zahlen drin sind, und verschiedene Trenner, und daher verschiedene Tokenizer das verschieden geparsed haben. Ich habe mich entschieden, das nochmal laufen zu lassen, diesmal gegen neue Quelldaten, die vortokenisiert sind. Ich habe leider nicht mehr alle Sprachumgebungen installiert, die ich damals hatte, und bei Ocaml bauen die Sourcen von damals nicht mit dem aktuellen Ocaml.
Diesmal interessierte mich vor allem, ob die Implementation relativ zueinander effizienter geworden sind. Hier sind die aktuellen Messungen, und da das diesmal vorbearbeitet ist, ist das auch vergleichbarer. Der alte PHP-Code hat z.B. bei einer Zeile das Tokenisieren eingestellt, wenn ein "0" als Token kam. Und Go brach kommentarlos ab, wenn eine Zeile zu lang ist, und hat dann viel weniger Werte tatsächlich bearbeitet. Zum Vergleich: Die alte Messung.
Für mich das spannenste Ergebnis: Wie stark Go aufgeholt hat. Und diesmal sind auch Python 2.7 und Python 3.6 beide vertreten, da sieht man, dass Python 3 deutlich viel langsamer ist, und zwar nicht nur (wie ich bis dato dachte) bei der Startup-Latenz. Auch einigermaßen überraschend fand ich, wie schlecht Node.js abschneidet. So viel Hype wie die haben, da ging ich von besserer Performance aus.
Auch überraschend ist, dass C so deutlich siegt. Bei der letzten Messung war C++ besser. Das war dann wohl auch ein Tokenisierungs-Artefakt und nicht real.
Falls jemand noch Sprachen nachreichen möchte, freue ich mich über Einsendungen. Insbesondere eine ideomatisch elegante Rust-Lösung fehlt noch.

Update: Es sind gleich mehrere Rust-Lösungen reingekommen. Eine schön ideomatische und eine optimiertere. Auch für Java kam noch eine schnellere Version rein, und die Ocaml-Version funktioniert jetzt auch mit dem aktuellen Ocaml 4.09. Danke an alle Einsender.

[zurück] [ältere Posting][neuere Posting]
[zurück] [ältere Posting][neuere Posting]

Fefes Latest Youtube Video Links