Thread Suche schnelle Perl 6-Implementation für Windows (25 answers)
Opened by GwenDragon at 2009-05-21 14:40

sid burn
 2009-06-25 14:37
#122658 #122658
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
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:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/env perl6

# 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 +0200 (CEST)
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de

View full thread Suche schnelle Perl 6-Implementation für Windows