Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

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

Charles Oliver Nutter
Charles Oliver Nutter
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

Charles Oliver Nutter headius closed this issue from a commit
Charles Oliver Nutter 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
Charles Oliver Nutter headius closed this in b0c4eaa
Michael Klishin 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
Michael Klishin 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.