Siechfred: Hashspeicher im Voraus bereitstellen ?

Beitrag lesen

Hallo Claudio.

Wenn ich bei einem Hash die Anzahl der Schlüssel im Voraus bereitstelle, diese Anzahl aber versehnlichst zu klein gewählt wurde, wird dann der Hash von Perl dennoch dynamisch vergrössert beim Einfügen weiterer Schlüssel oder bricht das Skript mit einer Fehlermeldung ab ?

Meinst du sowas:

my $anz = 1000;
my %new_hash;
keys(%my_hash) = $anz;

Perl reserviert m.W.n. den erforderlichen Mehrspeicher, falls du mehr als 1000 Elemente in deinem Hash hast ("Perl nimmt sich, was es braucht, bis nichts mehr da ist"). Btw, in obigem Beispiel wird nicht für 1000, sondern für 1024 Schlüssel Speicher reserviert (siehe perlfunc -f keys) Übrigens ist es sehr fraglich, ob du mit obigem Code tatsächlich die Performance des Scriptes erhöhst.

Freundschaft!
Siechfred

--
Nichts ist schwerer einzureißen als die Mauer in den Köpfen.