How do polymorphic inline caches work with mutable types?

Posted by kingkilr on Stack Overflow See other posts from Stack Overflow or by kingkilr
Published on 2009-06-27T15:57:23Z Indexed on 2010/04/05 18:33 UTC
Read the original article Hit count: 253

A polymorphic inline cache works by caching the actual method by the type of the object, in order to avoid the expensive lookup procedures (usually a hashtable lookup). How does one handle the type comparison if the type objects are mutable (i.e. the method might be monkey patched into something different at run time). The one idea I've come up with would be a "class counter" that gets incremented each time a method is adjusted, however this seems like it would be exceptionally expensive in a heavily monkey patched environ since it would kill all the PICs for that class, even if the methods for them weren't altered. I'm sure there must be a good solution to this, as this issue is directly applicable to Javascript and AFAIK all 3 of the big JS VMs have PICs (wow acronym ahoy).

© Stack Overflow or respective owner

Related posts about virtual-machine

Related posts about vm