[Vienna-pm] Verblüffendes Zeitverhalten

Peter J. Holzer hjp-vienna-pm-list at hjp.at
Thu Sep 9 02:49:17 CDT 2004


Ich habe gerade das Problem, dass ich in ein Hash nicht mehr als n
Elemente einfüllen möchte, alle weiteren sollen einfach ignoriert
werden. Zu diesem Zweck habe ich ein paar Benchmarks gemacht, um
herauszufinden, wie sich 

$a = scalar(%hash)

und 

$a = scalar(keys %hash)

für verschiedene Hashgrößen verhalten. 

Für mich verblüffendes Ergebnis: Letzters ist deutlich schneller (0.35
µs) und hat absolut konstante Laufzeit, ersteres braucht nicht nur
länger (1.5 bis 1.8 µs für Hashes mit 1000 .. 100_000 Elementen)
sondern wird mit zunehmender Hashgröße auch langsamer.

Der scheinbar einfachere Ausdruck ist in der Abarbeitung also
aufwändiger (ich schätze, dass da das Hash tatsächlich erst in ein Array
umgewandelt wird, dessen Größe dann bestimmt wird), der kompliziertere
aber logischere Ausdruck hat auch noch den Vorteil, schneller zu sein.

	hp

-- 
   _  | Peter J. Holzer    | Je höher der Norden, desto weniger wird
|_|_) | Sysadmin WSR       | überhaupt gesprochen, also auch kein Dialekt.
| |   | hjp at hjp.at         | Hallig Gröde ist fast gänzlich dialektfrei.
__/   | http://www.hjp.at/ |   -- Hannes Petersen in desd
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://mail.pm.org/pipermail/vienna-pm/attachments/20040909/142ba4fc/attachment.bin


More information about the Vienna-pm mailing list