Hallo
Ich habe mal folgenden Benchmarktest laufen lassen:
timethese(25000000, {
A => sub {use vars qw(@meine);},
B => sub {use vars qw($bilder $dbh $cgi $sth $statement $lnr $outtext);},
C => sub {use vars qw(%meine);},
D => sub {our @meine;},
E => sub {our ($bilder,$dbh,$cgi,$sth,$statement,$lnr,$outtext);},
F => sub {our %meine;}
});
Benchmark: timing 2500000 iterations of A, B, C, D, E, F...
A: 0 wallclock secs ( 0.05 usr + 0.00 sys = 0.05 CPU) @ 50000000.00/s (n=2500000)
(warning: too few iterations for a reliable count)
B: 0 wallclock secs ( 0.44 usr + 0.00 sys = 0.44 CPU) @ 5681818.18/s (n=2500000)
C: 0 wallclock secs ( 0.10 usr + 0.00 sys = 0.10 CPU) @ 25000000.00/s (n=2500000)
(warning: too few iterations for a reliable count)
D: 0 wallclock secs ( 1.54 usr + 0.00 sys = 1.54 CPU) @ 1623376.62/s (n=2500000)
E: 1 wallclock secs ( 2.10 usr + 0.00 sys = 2.10 CPU) @ 1190476.19/s (n=2500000)
F: 1 wallclock secs ( 0.72 usr + 0.00 sys = 0.72 CPU) @ 3472222.22/s (n=2500000)
PC: Celeron 400MHZ
256 MB Ram
Zum Zeitpunkt des Ausführens: Recht stark belastet... (naja)
Perl 5.6
Das ERgbnis ist schon Verwunderlich:
use vars viel schneller als our
Aber auch @meine bzw. %meine schneller als als einzelne Variablen.
Kann einer von euch nochmal das laufen lassen und mir dann Infos dazu geben, wie dass so kommt?
Ich finde das Ergebnis verwunderlich.