You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When accessing a constant like a::B, we attempt to cache the value against module a's id and the global constant invalidator. Unfortunately, for cases where this form may see many different "a" values (as is the case in #2493) we fail to cache the value but still keep trying. This leads to tremendous overhead in method handle creation and call site binding/rebinding.
For the moment I'm disabling this caching. JRuby 1.7 did not do it, so I do not have the heuristics in hand to tune these access sites. We will endeavor to fix this before final.
The text was updated successfully, but these errors were encountered:
We cache the "B" value based on the module ID of "a". However, if
the "a" value may be different values, we constantly try to
re-cache it. Need a better heuristic for bailout of too-dynamic
constant lookup sites.
Fixes#2493. Workaround for #2495.
Root cause of #2493.
When accessing a constant like a::B, we attempt to cache the value against module a's id and the global constant invalidator. Unfortunately, for cases where this form may see many different "a" values (as is the case in #2493) we fail to cache the value but still keep trying. This leads to tremendous overhead in method handle creation and call site binding/rebinding.
For the moment I'm disabling this caching. JRuby 1.7 did not do it, so I do not have the heuristics in hand to tune these access sites. We will endeavor to fix this before final.
The text was updated successfully, but these errors were encountered: