Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

[invokedynamic] Instance var sites do not age, do not handle dup'ed classes well #155

Closed
headius opened this Issue · 0 comments

1 participant

@headius
Owner

Instance variable call sites currently attempt to cache in a way similar to method calls. However, they do not ever age out (i.e. give up trying to update the indy call site) and as a result sites that encounter a large number of types will either grow the PIC forever or continually blow out the call site cache.

This needs to be fixed for JRuby 1.7, so that megamorphic ivar call sites failover to a simple inline cache.

An example of invokedynamic.log.binding output showing the continual rebinding of ivars is here: http://pastie.org/3855673

@headius headius closed this issue from a commit
@headius headius Fix #155
If an instance variable encounters too many types it will give up
trying to bind directly and fail over to a simple inline cache as
in the non-invokedynamic compiler. This should prevent churn of
polymorphic ivar call sites.
b0c4eaa
@headius headius closed this in b0c4eaa
@michaelklishin michaelklishin referenced this issue from a commit in ruby-amqp/bunny
Michael Klishin Make default list of CA's blank on JRuby
References jruby/jruby#155.
734037d
@michaelklishin michaelklishin referenced this issue from a commit in ruby-amqp/bunny
Michael Klishin Make default list of CA's blank on JRuby
References jruby/jruby#155.
f8689cd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.