Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

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?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://760433]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (8)
As of 2018-06-19 20:26 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (114 votes). Check out past polls.