Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re^4: elsif chain vs. dispatch

by almut (Canon)
on Apr 27, 2009 at 20:59 UTC ( #760433=note: print w/replies, xml ) Need Help??


in reply to Re^3: elsif chain vs. dispatch
in thread elsif chain vs. dispatch

I recall that perls from 5.8.3 or so have code in place to watch out for this sort of degenerate case

I think it's the HV_MAX_LENGTH_BEFORE_SPLIT, currently set to 14.

/* hv.c */ #define HV_MAX_LENGTH_BEFORE_SPLIT 14 ... Perl_hv_common( ... ) { ... while ((counter = HeNEXT(counter))) n_links++; if (n_links > HV_MAX_LENGTH_BEFORE_SPLIT) { /* Use only the old HvKEYS(hv) > HvMAX(hv) condition t +o limit bucket splits on a rehashed hash, as we're not goin +g to split it again, and if someone is lucky (evil) enou +gh to get all the keys in one list they could exhaust our + memory as we repeatedly double the number of buckets on ev +ery entry. Linear search feels a less worse thing to do +. */ hsplit(hv); } ... }

(the comment seems to be a left-over from an ealier implementation, though...)

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://760433]
help
Chatterbox?
shmem seeks a tate and smikes a pope
shmem .oO( Ca n'est pas un pipe )
[shmem]: ah well. goodn.(1<<3) folks

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (3)
As of 2017-03-28 22:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Should Pluto Get Its Planethood Back?



    Results (342 votes). Check out past polls.