Skip to content

less locking in interpreter mode (due IRMethod)#5903

Merged
kares merged 4 commits intojruby:masterfrom
kares:less-lazy-ic-sync
Oct 15, 2019
Merged

less locking in interpreter mode (due IRMethod)#5903
kares merged 4 commits intojruby:masterfrom
kares:less-lazy-ic-sync

Conversation

@kares
Copy link
Member

@kares kares commented Oct 2, 2019

a load test profiled showed some lower (but likely often unnecessary) numbers around:

org.jruby.ir.IRMethod.lazilyAcquireInterpreterContext()	
org.jruby.internal.runtime.methods.MixedModeIRMethod.ensureInstrsReady()	
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(ThreadContext, IRubyObject, RubyModule, String, IRubyObject, IRubyObject, Block)	
org.jruby.RubyClass.finvoke(ThreadContext, IRubyObject, String, IRubyObject, IRubyObject, Block)	
org.jruby.RubyBasicObject.send(ThreadContext, IRubyObject, IRubyObject, IRubyObject, Block)	
org.jruby.RubyKernel.send(ThreadContext, IRubyObject, IRubyObject, IRubyObject, IRubyObject, Block)
org.jruby.RubyKernel$INVOKER$s$send.call(ThreadContext, IRubyObject, RubyModule, String, IRubyObject, IRubyObject, IRubyObject, Block)	
org.jruby.runtime.callsite.CachingCallSite.call(ThreadContext, IRubyObject, IRubyObject, IRubyObject, IRubyObject, IRubyObject, Block)	
jruby.$2_dot_3_dot_0.gems.actionview_minus_4_dot_2_dot_11_dot_1.lib.action_view.template.invokeOther2:send(ThreadContext, IRubyObject, IRubyObject, IRubyObject, IRubyObject, IRubyObject, Block)
jruby.$2_dot_3_dot_0.gems.actionview_minus_4_dot_2_dot_11_dot_1.lib.action_view.template.RUBY$block$render$1(ThreadContext, Block, StaticScope, IRubyObject, IRubyObject[], Block)	

in a sample 3 threads were blocked for a total of 400ms (and more samples showed a similar trace)

@kares kares added this to the JRuby 9.2.9.0 milestone Oct 2, 2019
@kares kares merged commit 256a673 into jruby:master Oct 15, 2019
@kares kares deleted the less-lazy-ic-sync branch October 15, 2019 07:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants