Antw: Re: Hash von Subroutine zurueckuebergeben

Johannes Fuernkranz juffi at ai.univie.ac.at
Tue Jan 25 08:29:23 CST 2000


Sorry, aber der Benchmark-Code, den ich gerade gepostet habe, war schwachsinnig.

> (make_array ist eine Funktion die 1000 mal rand()*rand()*rand()*rand()
> berechnet, und die ersten $_[0] Werte in einem Array zurueckgibt, siehe attach):

make_array_2 ist eine 2. Funktion, die das gleiche tut, wie make_array, aber
eine Referenz auf den Array retourniert.

timethis(1000,'@x = make_array(1000)');
timethis(1000,'@x = make_array(10)');
timethis(1000,'$xref = make_array_2(1000)');
timethis(1000,'$xref = make_array_2(10)');
timethis(1000,'@x = @{ make_array_2(1000) }');
timethis(1000,'@x = @{ make_array_2(10) }');

timethis 1000: 14 wallclock secs (13.70 usr +  0.00 sys = 13.70 CPU)
timethis 1000: 11 wallclock secs (10.95 usr +  0.00 sys = 10.95 CPU)
timethis 1000: 10 wallclock secs (10.38 usr +  0.00 sys = 10.38 CPU)
timethis 1000: 10 wallclock secs ( 9.97 usr +  0.00 sys =  9.97 CPU)
timethis 1000: 13 wallclock secs (12.36 usr +  0.00 sys = 12.36 CPU)
timethis 1000: 10 wallclock secs ( 9.92 usr +  0.00 sys =  9.92 CPU)

> Man sehe:
> Das Zurueckgeben einer 1000-elementigen Liste dauert tatsaechlich signifikant
> laenger als das Zurueckgeben einer 10-elementigen Liste (30% Laufzeitsteigerung
> nur durch Aendern des Returns! Das ist bei den 3000 Multiplikationen und 4000
> generated random numbers, die auf jeden Fall ausgefuehrt werden, schon ganz
> schoen viel!). 
>
> Das Retournieren einer Referenz dauert immer gleich lang, auch wenn diese dann
> in eine Liste verwandelt wird (das ist eigentlich nicht weiter ueberraschend).

Das Umwandeln in eine Liste dauert nun doch ein wenig laenger, geht aber
schneller als das Retournieren der Liste. Auch scheint das Retournieren einer
Referenz auf einen kuerzeren Array schneller zu gehen als fuer einen laengere
Referenz (3. und 4. Zeile). Seltsam (oder statistisch nicht signifikant?)

Keine weiteren Bandwith- und Zeitverschwendungen, versprochen, aber das muszte
ich noch korrigieren.

							Juffi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bench.pl
Type: application/x-perl
Size: 1171 bytes
Desc: not available
Url : http://mail.pm.org/archives/vienna-pm/attachments/20000125/117660a4/bench.bin


More information about the Vienna-pm mailing list