Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
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...)


Comment on Re^4: elsif chain vs. dispatch
Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://760433]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (8)
As of 2014-10-21 02:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (95 votes), past polls