noqqe » blog | sammelsurium | photos | projects | about

Bildbearbeitung ist ein tolles Thema geworden. Seit dem Mehrteiler hier im Blog über abandoned-tuples in Python ist noch ein bisschen was passiert. Ich habe ungefähr verstanden wie bestimmte Effekte herbeizuführen sind beispielsweise.

Während des Lockdowns habe ich dann angefangen Go zu lernen und habe dazu auch die Bildbearbeitung nach Go portiert. Das entstandene Projekt heisst nept. Nept ist 50% einen Backronyms. Noch unklar was es bedeuten soll.

So weit, so gut.

Go Routines

Warum habe ich das alles gemacht? Neben anderen Features wie Tests, Modules und Interfaces wollte ich auch Gos eingebaute Gleichzeitigkeit mit Go Routines ausprobieren.

Der Diff war schnell eingebaut (und auch echt Spass gemacht!) aber danach nicht so ganz gewusst wie ich den Unterschied messen kann.

Go Routines

Go Routines

Anstatt das mit time per Hand zu messen, gibt es das Tool hyperfine. Es hat tolle Features und rechnet gleich aus wie viel schneller/langsamer 2 Kommandos im Vergleich sind.

Ich habe mein Git Repository also zurückgesetzt und die alte Version von nept nocheinmal kompiliert.

Vergleich Go vs Go mit Gleichzeitigkeit

Vergleich Go vs Go mit Gleichzeitigkeit

Und tatsächlich, es sind 5 statt 6 Sekunden.

Zum Vergleich habe ich dann auch noch die Go Implementierung gegen die Vormalige Python Variante dagegen gehalten:

Vergleich Python vs Go

Vergleich Python vs Go

Und der Unterschied hierbei krass, ganze 8 mal schneller ist die Go Variante.

Tolles Tool, kann ich jedem empfehlen der mal Tools vergleichen muss.