Wir nutzen Cookies, um das allgemeine Benutzerelebnis zu verbessern. Mit der Nutzung unseres Wikis stimmst du der Nutzung von Cookies zu.

Geschwindigkeitsvergleich von blockbasierten Sprachen

Dieser Artikel fasst die Ergebnisse eines Geschwindigkeitsvergleichs von verschiedenen blockbasierten Programmiersprachen zusammen. Beachte auch den Artikel mit dem umfassenden Vergleich von blockbasierten Programmiersprachen.

Primzahlentest

Das folgende Programm testet eine eingegebene Zahl darauf ob es eine Primzahl ist und gibt ansonsten den kleinsten Faktor aus.

Ein paar Testzahlen

Eingabe Ergebnis
1000267129 31627
75173027329 274177
75173027341 Primzahl!

Testprogramm

Wenn @ angeklickt
frage [Gib eine Zahl ein] und warte
setze Stoppuhr zurück
isPrime? (Antwort) returns factor
setze [time v] auf (Stoppuhr)
falls <<(Antwort) = (factor)> und <(Antwort) > [1]>> dann
    sage [Primzahl!]
sonst
    sage (verbinde (Antwort) (verbinde [ kann durch ] (verbinde (factor) [ geteilt werden.])))
end

Definiere isPrime? (num) returns factor
setze [factor v] auf [2]
wiederhole bis <((factor) * (factor)) > (num)>
    falls <((num) mod (factor)) = [0]> dann
        stoppe [this script v]
    end
    ändere [factor v] um (1)
end
setze [factor v] auf (num)

Getestete Programme

Stempeltest mit Rastergrafik

"Stamp like crazy" ist ein Test für das Stempeln von Grafiken. Dabei wird von einer Grafik 12345-mal ein Abdruck erzeugt. Der Test ist in zwei Teile aufgeteilt, einmal wird eine Rastergrafik gestempelt und einmal eine Vektorgrafik.


95932974_144x108.png

Stamp like crazy

Getestete Projekte

Boing Ball Demo

Dieser Test ist an das legendäre Boing Ball Demo angelehnt, welches 1984 die Grafikfähigkeiten des Commodore Amiga eindrucksvoll demonstrierte. Hier soll es die Fähigkeit testen, eine Grafikanimation ruckelfrei darzustellen.

Getestete Projekte

Messungen

Surface Pro 4 mit einem auf Chrome 56.0.2924.87, Flash 24.0 unter Windows 10 durchgeführt. Bei Snap! wurde testweise "prefer smooth animations" eingeschaltet, was die Performance beim Boing Ball aber verschlechterte, der bessere Wert wurde in das Ergebnis aufgenommen.

Ergebnisse

Ausfuehrungszeiten-Vergleich.png

System Primtest Boing Ball Grid Boing Ball Travel Stamptest Raster Stamptest Vektor
Scratch 2.0 0.91s 1.9s 5.2s 5.4s 12.8s
Snap! 5,6s 2s 9.1s 0.6s 0.6s
Phosphorus Player 0.084s 1.9s 5.2s 0.09s 0.08s
Sulfurous Player 0.092s 1.9s 5.1s 0.1s 0.22s

Außer Konkurrenz wurde auch die derzeit in Entwicklung befindliche Programmiersprache GP mit dem Primzahlenprogramm gestetet. Leider kann GP derzeit Zahlen ab einer gewissen Größe nicht korrekt behandeln so dass der verwendete Testcase mit 75173027341 nicht korrekt durchläuft. Ein mehrfacher Test mit einer kleineren Zahl, 1000267129, zeigt dass die aktuelle Pre-Alpha-Version von GP potentiell wesentlich schneller als Scratch oder Snap! ist und sich Phosphorus nur knapp geschlagen geben muss.

Fazit

Phosphorus ist bei fast allen Aufgaben am schnellsten, interessant ist aber dass Scratch unter dem Flash Player bei einigen Grafikaufgaben mithalten kann. Snap! ist beim Stempeln von Grafiken am schnellsten, bei den anderen Aufgaben aber am langsamsten. Der Boing Ball wird im Snap!-Programm nicht immer korrekt dargestellt. Die noch unveröffentlichte Programmiersprache GP ist von der Performance her vielversprechend.



Code zum Einbinden ins Forum:
[wiki=de:Geschwindigkeitsvergleich von blockbasierten Sprachen]Geschwindigkeitsvergleich von blockbasierten Sprachen[/wiki]