Thread Performance: Referenzen vs. Typeglobs (6 answers)
Opened by Benedikt at 2005-10-20 16:30

Benedikt
 2005-10-20 16:30
#59054 #59054
User since
2005-10-16
4 Artikel
BenutzerIn
[default_avatar]
Hallo Community,

an vielen Stellen und in Lehrbüchern werden Typeglobs wegen ihres Performancevorteils gelobt. Ich wollte das mal genau wissen und hab folgendes Skript aufgesetzt:

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
24
25
#!Perl -w

use Benchmark;
$repetitions = 1000000;
@testArray = (22, 34, 433, 123, 435, 66);

sub typeglobs {
   local *kopie = shift;
   foreach (@kopie) {
       $_ *= 2;
   }
}

sub references {
   my $rarray = shift;
   foreach (@$rarray) {
       $_ *= 2;
   }
}

print "Ueber Referenzen:\n";
timethis($repetitions, "references(\@testArray)");

print "\n\nUeber Typeglobs:\n";
timethis($repetitions, "typeglobs(*testArray)");


Beide Funktionen (typeglobs und references) machen hier das selbe, nämlich die Multiplikation jedes Arrayeintrages mit 2.

Ich war sehr überrascht, dass meine typeglobs-Funktion fast drei mal so lang braucht, wie die references-Funktion.

Vielleicht habt ihr ja andere Ergebnisse? Oder ist mein Code schlicht und einfach falsch?

Viele Grüße
Benedikt

View full thread Performance: Referenzen vs. Typeglobs