Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

less locking in interpreter mode (due IRMethod) #5903

Merged
merged 4 commits into from Oct 15, 2019
Merged

Conversation

@kares
Copy link
Member

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 added 2 commits Sep 30, 2019
+ reduce lazy synchronization (showed on a load test profile)
@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
5 checks passed
5 checks passed
continuous-integration/travis-ci/pr The Travis CI build passed
Details
jruby.jruby Build #20191007.3 succeeded
Details
jruby.jruby (Job linux) Job linux succeeded
Details
jruby.jruby (Job mac) Job mac succeeded
Details
jruby.jruby (Job windows) Job windows succeeded
Details
@kares kares deleted the kares:less-lazy-ic-sync branch Oct 15, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

2 participants
You can’t perform that action at this time.