in reply to Minimum Hash keys allocated?
The first time you assign a value to a new hash, it gets allocated 8 slots. When the number of slots used reaches 6 (which may be more than 6 keys if you get hash collisions), it expands to 16 slots. And it doubles again when 3/4s of the slots (12/16) are used. And so on.
You can see this if you run the following code:
perl -wE"my %h;$h{$_}=$_, say $_, ':',scalar %h for 1 .. 1025" | more 1:1/8 2:2/8 3:3/8 4:3/8 ## collision 5:4/8 6:5/8 7:6/8 8:7/16 9:8/16 10:9/16 11:10/16 12:10/16 ## collision 13:10/16 ## collision 14:11/16 15:11/16 ## collision 16:14/32 17:14/32 ## collision ...
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Minimum Hash keys allocated?
by flexvault (Monsignor) on Sep 26, 2010 at 21:32 UTC | |
by BrowserUk (Patriarch) on Sep 26, 2010 at 21:41 UTC |