Aus Das deutschsprachige Scratch-Wiki





























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 gf 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
- Scratch: https://scratch.mit.edu/projects/93448586/
- Snap!: http://snap.berkeley.edu/snapsource/snap.html#present:Username=frodewin&ProjectName=primetest
- Phosphorus:http://phosphorus.github.io/#93448586
- Sulfurous:http://sulfurous.aau.at/#93448586
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.
Getestete Projekte
- Scratch: https://scratch.mit.edu/projects/95932974 (remix that does vector and bitmap)
- Snap: http://snap.berkeley.edu/snapsource/snap.html#present:Username=jens&ProjectName=stamp%20like%20crazy&editMode&noRun
- Phosphorus: http://phosphorus.github.io/#95932974
- Sulfurous: http://sulfurous.aau.at/#95932974
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
- Scratch: https://scratch.mit.edu/projects/95733645
- Snap!: http://snap.berkeley.edu/snapsource/snap.html#present:Username=frodewin&ProjectName=Boing%20Ball%20Demo
- Phosphorus:http://phosphorus.github.io/#95733645
- Sulfurous:http://sulfurous.aau.at/#95733645
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
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 |
Scratch 3.0 preview | 0.67s | 1.9s | 5.2s | 18.8s | 20.3s |
Snap! | 5,6s | 2s | 9.1s | 0.6s | 0.6s |
Phosphorus Player | 0.07s | 1.9s | 5.2s | 0.11s | 0.12s |
Sulfurous Player | 0.06s | 1.9s | 5.1s | 0.44s | 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 aber noch etwas langsamer als Phosphorus war.
Fazit
Phosphorus und Sulfurous sind 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.
[wiki=de:Geschwindigkeitsvergleich von blockbasierten Sprachen]Geschwindigkeitsvergleich von blockbasierten Sprachen[/wiki]