Skip to content

Instantly share code, notes, and snippets.

@lribeiro
Created August 5, 2011 08:14
Show Gist options
  • Save lribeiro/1127112 to your computer and use it in GitHub Desktop.
Save lribeiro/1127112 to your computer and use it in GitHub Desktop.
Benchmark running an Active Record heavy background job
source rvm jruby-1.6.3 && jruby --1.9 -Itest test/performance/turn_test.rb 10
jruby 1.6.3 (ruby-1.9.2-p136) (2011-07-07 965162f) (Java HotSpot(TM) Server VM 1.7.0) [linux-i386-java]
user system total real
41.793000 0.000000 41.793000 ( 41.792000)
24.838000 0.000000 24.838000 ( 24.838000)
22.829000 0.000000 22.829000 ( 22.829000)
22.256000 0.000000 22.256000 ( 22.256000)
21.766000 0.000000 21.766000 ( 21.766000)
21.968000 0.000000 21.968000 ( 21.968000)
20.753000 0.000000 20.753000 ( 20.753000)
21.224000 0.000000 21.224000 ( 21.224000)
21.099000 0.000000 21.099000 ( 21.099000)
21.269000 0.000000 21.269000 ( 21.269000)
source rvm jruby-1.6.3 && jruby -J-Xmx2048m --1.9 -Itest test/performance/turn_test.rb 10
jruby 1.6.3 (ruby-1.9.2-p136) (2011-07-07 965162f) (Java HotSpot(TM) Server VM 1.7.0) [linux-i386-java]
user system total real
42.228000 0.000000 42.228000 ( 42.228000)
25.159000 0.000000 25.159000 ( 25.159000)
22.743000 0.000000 22.743000 ( 22.743000)
21.717000 0.000000 21.717000 ( 21.717000)
20.949000 0.000000 20.949000 ( 20.949000)
20.832000 0.000000 20.832000 ( 20.832000)
20.420000 0.000000 20.420000 ( 20.420000)
20.374000 0.000000 20.374000 ( 20.374000)
20.313000 0.000000 20.313000 ( 20.314000)
20.403000 0.000000 20.403000 ( 20.403000)
source rvm jruby-1.6.3 && jruby -J-XX:+DoEscapeAnalysis -J-Xmx2048m --1.9 -Itest test/performance/turn_test.rb 10
jruby 1.6.3 (ruby-1.9.2-p136) (2011-07-07 965162f) (Java HotSpot(TM) Server VM 1.7.0) [linux-i386-java]
user system total real
41.754000 0.000000 41.754000 ( 41.753000)
24.680000 0.000000 24.680000 ( 24.680000)
22.329000 0.000000 22.329000 ( 22.329000)
21.420000 0.000000 21.420000 ( 21.420000)
20.683000 0.000000 20.683000 ( 20.683000)
20.524000 0.000000 20.524000 ( 20.524000)
20.388000 0.000000 20.388000 ( 20.388000)
20.059000 0.000000 20.059000 ( 20.059000)
20.060000 0.000000 20.060000 ( 20.060000)
19.967000 0.000000 19.967000 ( 19.967000)
source rvm jruby-head && jruby --1.9 -Itest test/performance/turn_test.rb 10
jruby 1.7.0.dev (ruby-1.9.2-p136) (2011-08-04 69a8f9c) (Java HotSpot(TM) Server VM 1.7.0) [linux-i386-java]
user system total real
49.976000 0.000000 49.976000 ( 49.976000)
29.912000 0.000000 29.912000 ( 29.912000)
31.111000 0.000000 31.111000 ( 31.111000)
25.865000 0.000000 25.865000 ( 25.865000)
29.354000 0.000000 29.354000 ( 29.354000)
25.485000 0.000000 25.485000 ( 25.485000)
29.023000 0.000000 29.023000 ( 29.023000)
25.209000 0.000000 25.209000 ( 25.209000)
29.220000 0.000000 29.220000 ( 29.220000)
25.218000 0.000000 25.218000 ( 25.218000)
source rvm jruby-head && jruby -J-Xmx2048m --1.9 -Itest test/performance/turn_test.rb 10
jruby 1.7.0.dev (ruby-1.9.2-p136) (2011-08-04 69a8f9c) (Java HotSpot(TM) Server VM 1.7.0) [linux-i386-java]
user system total real
50.076000 0.000000 50.076000 ( 50.077000)
31.576000 0.000000 31.576000 ( 31.576000)
26.214000 0.000000 26.214000 ( 26.214000)
23.540000 0.000000 23.540000 ( 23.540000)
22.646000 0.000000 22.646000 ( 22.646000)
22.210000 0.000000 22.210000 ( 22.210000)
21.717000 0.000000 21.717000 ( 21.717000)
21.528000 0.000000 21.528000 ( 21.528000)
21.721000 0.000000 21.721000 ( 21.721000)
21.489000 0.000000 21.489000 ( 21.489000)
source rvm jruby-head && jruby -J-XX:+DoEscapeAnalysis -J-Xmx2048m --1.9 -Itest test/performance/turn_test.rb 10
jruby 1.7.0.dev (ruby-1.9.2-p136) (2011-08-04 69a8f9c) (Java HotSpot(TM) Server VM 1.7.0) [linux-i386-java]
user system total real
51.239000 0.000000 51.239000 ( 51.239000)
31.186000 0.000000 31.186000 ( 31.186000)
25.765000 0.000000 25.765000 ( 25.765000)
23.552000 0.000000 23.552000 ( 23.552000)
22.968000 0.000000 22.968000 ( 22.968000)
21.930000 0.000000 21.930000 ( 21.930000)
21.668000 0.000000 21.668000 ( 21.668000)
21.324000 0.000000 21.324000 ( 21.324000)
21.270000 0.000000 21.270000 ( 21.270000)
21.144000 0.000000 21.144000 ( 21.144000)
source rvm jruby-head && jruby -Xcompile.invokedynamic=false --1.9 -Itest test/performance/turn_test.rb 10
jruby 1.7.0.dev (ruby-1.9.2-p136) (2011-08-04 69a8f9c) (Java HotSpot(TM) Server VM 1.7.0) [linux-i386-java]
user system total real
43.259000 0.000000 43.259000 ( 43.259000)
25.514000 0.000000 25.514000 ( 25.514000)
24.648000 0.000000 24.648000 ( 24.648000)
23.431000 0.000000 23.431000 ( 23.431000)
23.228000 0.000000 23.228000 ( 23.229000)
22.131000 0.000000 22.131000 ( 22.131000)
22.713000 0.000000 22.713000 ( 22.713000)
21.917000 0.000000 21.917000 ( 21.917000)
22.400000 0.000000 22.400000 ( 22.400000)
21.729000 0.000000 21.729000 ( 21.729000)
source rvm jruby-head && jruby -Xcompile.invokedynamic=false -J-Xmx1024m --1.9 -Itest test/performance/turn_test.rb 10
jruby 1.7.0.dev (ruby-1.9.2-p136) (2011-08-04 69a8f9c) (Java HotSpot(TM) Server VM 1.7.0) [linux-i386-java]
user system total real
42.730000 0.000000 42.730000 ( 42.730000)
25.039000 0.000000 25.039000 ( 25.039000)
24.246000 0.000000 24.246000 ( 24.246000)
22.117000 0.000000 22.117000 ( 22.117000)
21.573000 0.000000 21.573000 ( 21.573000)
20.865000 0.000000 20.865000 ( 20.865000)
21.168000 0.000000 21.168000 ( 21.168000)
20.642000 0.000000 20.642000 ( 20.642000)
20.628000 0.000000 20.628000 ( 20.628000)
20.561000 0.000000 20.561000 ( 20.562000)
source rvm jruby-head && jruby -J-XX:CompileCommand=dontinline,org.jruby.runtime.invokedynamic.InvokeDynamicSupport::invocationFallback --1.9 -Itest test/performance/turn_test.rb 10
CompilerOracle: dontinline org/jruby/runtime/invokedynamic/InvokeDynamicSupport.invocationFallback
jruby 1.7.0.dev (ruby-1.9.2-p136) (2011-08-04 69a8f9c) (Java HotSpot(TM) Server VM 1.7.0) [linux-i386-java]
user system total real
46.415000 0.000000 46.415000 ( 46.415000)
28.070000 0.000000 28.070000 ( 28.070000)
29.374000 0.000000 29.374000 ( 29.374000)
25.133000 0.000000 25.133000 ( 25.133000)
27.773000 0.000000 27.773000 ( 27.773000)
24.945000 0.000000 24.945000 ( 24.946000)
27.302000 0.000000 27.302000 ( 27.302000)
24.518000 0.000000 24.518000 ( 24.518000)
27.843000 0.000000 27.843000 ( 27.843000)
24.850000 0.000000 24.850000 ( 24.850000)
source rvm ruby-1.9.2 && ruby -Itest test/performance/turn_test.rb 10
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux]
user system total real
29.050000 0.310000 29.360000 ( 30.848780)
23.270000 0.210000 23.480000 ( 24.208647)
23.840000 0.100000 23.940000 ( 24.672576)
23.730000 0.140000 23.870000 ( 24.568335)
24.020000 0.150000 24.170000 ( 24.887117)
24.070000 0.180000 24.250000 ( 24.976338)
23.920000 0.200000 24.120000 ( 24.882156)
23.860000 0.170000 24.030000 ( 24.721851)
23.720000 0.180000 23.900000 ( 24.598047)
23.700000 0.150000 23.850000 ( 24.535068)
@rdp
Copy link

rdp commented Aug 8, 2011

what are your conclusions? what about --server

@lribeiro
Copy link
Author

lribeiro commented Aug 8, 2011

jruby 1.7.0.dev (ruby-1.9.2-p136) (2011-08-04 69a8f9c) (Java HotSpot(TM) Server VM 1.7.0) [linux-i386-java]
server is on by default
my only conclusion is that we still have a long way to go before invokedynamic really pays off for rails apps.
Im working on getting a more complete set of performance flags tested, and automate the benchmarks to produce some graphics for easier intrepretation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment