Ich habe mir vorhin PUGS von Jonathan Worthingtons Website herunter geladen.
Aber das ist sehr behäbig, wohl weil es ein so riesiges Programm ist; auch wenn es gerade nur zum Üben ist, stört es doch ein wenig.
Ist ein mit Rakudo erstelltes Perl6 vielleicht schneller?
Aber das muss ich wohl erst selbst kompilieren oder? Oder gibt es auch irgendwo fertige Windwoss-Binaries (konnte im Web nichts finden)?
Rakudo ist denk ich einiges schnelle als Pugs aber nicht in allem und leider kann ich dir keinen interpreter empfehlen der schneller ist da auch smop zwar 10mal schneller als kp6 ist aber nicht schneller als rakudo.
Oha, habe ich gerade gelesen, danke.
Behäbig ist dann erst recht falsch. <iro>Tödlich langsam, in Äonen um einen Programmschritt sich vor tastend, Megatonnen von Gedächtnis verschlingend.</iro>
Ich wusste nicht, dass es so lahm und gefräßig ist.
Last edited: 2009-06-01 14:31:55 +02:00
+5 replies
lichtkind
2009-06-01 14:59
User since 2004-03-22
3821
articles
im #perl6 war der blogpost nicht allzu wohlwollend aufgenommen weil normale algorithmen nich ganz so astronomisch schlechter sind.
aber stimmt schon die jungs bemühen sich noch die features überhaupt implementiert zu bekommen, es ist nirgends nur irgendwas optimiert. naja chromatic fing vor halben jahr an bestimmte teile von parrot zu optimieren und hat dabei schon ganz ansehnliche sachen verbessert, aber die versprochende bytecode optimierung fehlt bisher ganz und rakudo ist gänzlich frei von solchen ansätzen. :)
aber stimmt schon die jungs bemühen sich noch die features überhaupt implementiert zu bekommen, es ist nirgends nur irgendwas optimiert.
Was garantiert niemand schlecht reden will. Die Aktivität in letzter Zeit und vor allem die 1.x bei Parrot verleiten nur sehr schnell dazu einfach schon mehr zu erwarten.
-- yet another amateur perl hacker
+3 replies
lichtkind
2009-06-01 18:55
User since 2004-03-22
3821
articles
parrot 1.0 bedeutet das die API für sprachentwickler ausgereift und bis 2.0 stabil bleibt.
Licht und Liebe ist alles was wir in Wirklichkeit suchen.
+5 replies
Taulmarill
2009-06-25 13:13
User since 2004-02-19
1603
articles
Ich habe eben kurz das letzte Rakudo (#17, "Stockholm") mit dem aktuellen (#18, "Pittsburgh") verglichen. Um das Ergebnis vorweg zu nehmen: Nachdem ich von dem Vergleich zwischen #16 und #17 etwas enttäuscht war, da #17 eher ein wenig langsamer geworden ist, ist #18 jetzt deutlich schneller. Obwohl die Geschwindigkeit noch weit von perl 5.x entfernt ist, lässt sich doch ein deutlicher Trend erkennen.
Erst mal hat sich der Overhead verringert. Ein einfaches perl6 -e'say "hello"' hat unter #17 noch gut 1150ms gebraucht, währen #18 nur noch 800ms läuft.
Folgendes Script läuft auf #18 jetzt nur 1400ms, auf #17 braucht es immerhin 6600ms.
Code:
1 2 3 4 5 6
my @numbers; my Int $i;
for ( 0 .. 1000 ) -> $i { @numbers[$i] = $i; }
Falls noch jemand ein kleines Script getestet haben will kann ich das hier kurzfristig machen.
Ah, danke für den Hinweis.
Da sind die also mit den Optimierungen weiter gekommen.
Taulmarill
2009-06-25 13:58
User since 2004-02-19
1603
articles
Sieht so aus. Wobei ich nicht sagen kann, ob die Optimierung Rakudo oder Parrot betrifft, da ich #17 und #18 mit dem jeweils zum Zeitpunkt der Installation aktuellen Parrot gebaut habe.
Ich habe mir eben mal den Speicherverbrauch angeschaut. Auch wenn ich hier keine Zahlen posten will, da top IMHO nur ein sehr grobes Schätzeisen ist, kann ich doch mit ziemlicher Sicherheit sagen, dass auch da einiges Optimiert wurde.
Konnte mit der neuen Version ebenfalls einen deutlichen Performanceschub feststellen. Allerdiengs kann ich das nur Subjektiv berichten, genaue Zeiten weiß ich nicht mehr. Zum test lasse lasse ich das folgende Skript laufen:
# Neuen Typ der nur Positive Integer erlaubt subset Int::Pos of Int where { $_ > 0 };
# itterative lösung für fibonnaci zahlen mit cache sub fib ( Int::Pos $n ) { # Array das bisherige ergebnise cached state @array = ( 1, 1 ); # Cache abfragen ob die angeforderte fib zahl schonmal berechnet wurde # und wenn ja dies zurück geben. return @array[$n-1] if @array.exists($n-1); # ansonsten von der letzten fib bis zur aktuellen anfrage hochrechnen for @array.elems .. $n-1 -> $idx { @array[$idx] = @array[$idx-2] + @array[$idx-1]; } return @array[$n-1]; }
# Die ersten 50 Fibonacci Zahlen berechnen for 1 .. 100 -> $num { printf "%4d: %.0lf\n", $num, fib($num); }
Wenn ich den overhead für ein leeres "rakudo" starten raus rechne (1.5 sek), dann dauert das nun "2" Sekunden. Ich glaube vorher war das mal 5-10 sekunden.
Zum Vergleich, ein Perl 5 mit dem Langsamen "use bignum" und eine ganz normale rekursive lösung mit memoize benötigt nur "0.3" sekunden inklusive startzeit.
Zum Speicherverbrauch mit top war es vorher so 50-60+ MiB mit allem, jetzt ist es auf ca. die hälfte gesunken ~25-30 MiB.
Last edited: 2009-06-25 14:39:11 +02:00
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
lichtkind
2009-06-25 21:44
User since 2004-03-22
3821
articles
wie ich sagte ich glaub das geht auf chromatic zurück der einzelne teile optimiert hat, checked sein blog auf use.perl
Ist ein mit Rakudo erstelltes Perl6 vielleicht schneller?
Aber das muss ich wohl erst selbst kompilieren oder? Oder gibt es auch irgendwo fertige Windwoss-Binaries (konnte im Web nichts finden)?
Ich wollte mir gerade mal "Padre" anschauen und bin ins Binary Verzeischniss gegangen wo sie eigentlich Binary Dateien anbieten (oder es irgendwann mal gemacht haben).
Jedenfalls ist mir da aufgefallen das dort auch ein vorkompiliertes Rakudo liegt, habe es jetzt aber selber nicht ausprobiert, nutze ja GNU/Linux.
Du musst eine Datei bei "parrotwin32 setup" herunterladen und dann eine Datei bei "parrot-rakudo addon". Musst anscheind nur drauf achten das addon und parrot selber die gleiche version haben.
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
+7 replies
GwenDragon
2010-01-15 13:06
User since 2005-01-17
6207
articles
Danke sid, das habe ich vor ca. einem Monat auch mal getestet.
Ich bekam es nur nicht zum Laufen, weil irgendwelche Pfade auf Packages nicht stimmten.
Ich teste heute mal das aktuelle.
+6 replies
sid burn
2010-01-15 14:11
User since 2006-03-29
1520
articles
Habs bei mir vorhin mal getestet und lief bei mir einwandfrei. Hab den vorgegebenen Installationspfad verwendet.
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
+5 replies
GwenDragon
2010-01-15 15:18
User since 2005-01-17
6207
articles
Ja, nur wollte ich C: nicht mit sowas zumüllen. Mein Entwicklungssystem hat vieles nach X: (wie Unix) installiert.
Woanders aber findet Parrot/Rakudo nicht mehr die eigenen Libraries.
Und dann muss ich Rakudo wohl selbst kompilieren.
Jedenfalls wüsste ich nicht wie ich PERL6LIB setzen sollte, insofern es überhaupt geht.
+4 replies
sid burn
2010-01-15 16:02
User since 2006-03-29
1520
articles
Kann nicht Windows bzw. NTFS mitlerweile echte Symbolische Links? Kannst doch dann soetwas setzen. Ansonsten fragt er zumindest nach einem Pfad wohin er es installieren soll. Bei Strawberry ist der Pfad ja auch vorgegeben aber dort kann man auch kein Pfad auswählen.
Ansonsten hast nicht mal einfach über eine Virtuelle Maschiene nachgedacht? Virtualbox + Linux und es dort dann einfach nutzen? Das letzte Fedora Core soll sogar schon eine Rakudo Version mitliefern.
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
GwenDragon
2010-01-15 16:48
User since 2005-01-17
6207
articles
Ich werde wohl jetzt mein Virtualbox mit Debian anwerfen müssen und dort Rakudo installieren.
Hilft alles nix.
+2 replies
guest anon
2010-01-15 17:04
NTFS hat Junctions seit Windows 2000.
GwenDragon
2010-01-15 17:15
User since 2005-01-17
6207
articles
Ja, das ist mir bekannt. Das ändert aber nix an dem Problem, dass ich dann eine Junction von X:\usr\local\perl\6 nach C:\Rakudo_1.9 setzen muss.