Ich kenne den Umfang Ihres Bedarfs nicht. IFF Sie tun numerische Datenbearbeitung, die Perl Data Language ( PDL ) nimmt eine Reihe von numerischen Daten, erstellt daraus ein "Piddle" -Objekt und überlädt mathematische Operationen, um ihre Operation zu "vektorisieren". Dies ist ein sehr effizientes System zur numerischen Verarbeitung. Wie auch immer, hier ist ein Beispiel:
%Vor%Dieser Kommentar ist für SoloBold.
Hier ist ein Test des map
-Ansatzes:
Hier ist ein Test des foreach
-Ansatzes:
Hier ist das System, auf dem ich arbeite:
%Vor%Hier waren die Ergebnisse eines Tests:
%Vor%Diese Zeiten sind auf dem gleichen Rechner ziemlich reproduzierbar und die Ergebnisse sind auf einer Dual-Core-Linux-Box etwas wiederholbar:
%Vor% Das Leistungsverhältnis der OS X-Box ist für map
gegenüber foreach
8,53x langsamer. Auf der Linux-Box, 3.67x langsamer für die gleiche.
Meine Linux-Box ist Dual-Core und hat etwas schnellere Kerne als mein Single-Core OS X Laptop.
BEARBEITEN
Ich habe Perl von v5.8.8 auf v5.12.3 in meiner OS X-Box aktualisiert und einen beträchtlichen Geschwindigkeitsschub bekommen, aber map
schnitt immer noch schlechter ab als foreach
:
Das geht von 8.53x schlechter zu 2.94x schlechter. Eine ziemlich wesentliche Verbesserung.
Die Linux-Box hat mit der Aktualisierung ihrer Perl-Installation auf v5.12.2:
etwas schlechter ausgeführt %Vor%Das geht von 3,67x schlimmer bis 4,5x schlechter - nicht so gut! Es lohnt sich nicht immer, upzugraden, nur für den Teufel.