Thread Hash im Skalaren Kontext 3/8 und so (15 answers)
Opened by rosti at 2012-08-16 18:32

Raubtier
 2012-08-17 01:58
#161095 #161095
User since
2012-05-04
1057 Artikel
BenutzerIn

user image
2012-08-16T21:14:43 Muffi
Zusammenfassend kann man wohl sagen, dass man mit dem manuellen Setzen der Buckets ein bisschen Performance rausholen kann, wenn man weiss welche Zahlen man am besten setzt.


Na, möglichst große natürlich!

Aber das wird nur bei richtig großen Hashes was bringen. Denn jedes Mal, wenn die Größe geändert wird, wird ja die Speichergröße geändert und alle bisherigen Einträge müssen dann ggf. in den neuen Bereich verschoben werden. Das ist relativ teuer, deswegen wird auch immer gleich die Speichergröße verdoppelt, damit das selten passiert. Wenn ich aber sowieso weiß, dass mein Hash 1 Mio. Einträge haben wird, kann ich das Perl eben gleich mitteilen und somit das realloc und mehrmalige Umsortieren sparen. Wenn ich nun einen Algorithmus habe, der sehr oft solche großen Hashes aufbaut, dann könnte es spürbar sein. Mir fällt nur gerade kein konkretes Beispiel ein, wo man sowas braucht :-)

Quote
Für was man die Zahlen allerdings auslesen können muss ist mir bis heute noch nicht so ganz klar.


Nur wenn man schauen will, wie gut das Hashing funktioniert. Wenn die Anzahl der Keys == die Zahl vor den Slash, dann war das Hashing optimal. Wenn du nie riesige Zahl von Keys hast aber vor dem Slash eine 1 steht, dann ist das der schlimmste Fall.

View full thread Hash im Skalaren Kontext 3/8 und so