-
-
Notifications
You must be signed in to change notification settings - Fork 942
Closed
Milestone
Description
Started in newrelic/newrelic-ruby-agent#222
require 'benchmark/ips'
# Uncomment for the second bench
# require 'active_support/dependencies'
Benchmark.ips do |x|
x.config(warmup: 30, time: 20)
x.report("const_defined?") do
Object.const_defined?(:ActionDispatch) &&
::ActionDispatch.const_defined?(:Http) &&
::ActionDispatch::Http.const_defined?(:ParameterFilter)
end
x.report("defined?") { defined?(ActionDispatch::Http::ParameterFilter) }
x.compare!
endJRuby 9.0.5.0
/tmp ⚡ jruby -S check.rb
Warming up --------------------------------------
const_defined? 171.651k i/100ms
defined? 1.043k i/100ms
Calculating -------------------------------------
const_defined? 6.944M (± 8.1%) i/s - 137.836M in 19.993781s
defined? 10.139k (± 6.9%) i/s - 202.342k in 20.054383s
Comparison:
const_defined?: 6943907.0 i/s
defined?: 10139.3 i/s - 684.85x slower
JRuby 1.7.23
/tmp ⚡ jruby -S check.rb
Warming up --------------------------------------
const_defined? 155.373k i/100ms
defined? 1.073k i/100ms
Calculating -------------------------------------
const_defined? 3.535M (± 5.9%) i/s - 70.539M
defined? 11.502k (± 6.1%) i/s - 229.622k
Comparison:
const_defined?: 3535262.7 i/s
defined?: 11501.9 i/s - 307.36x slower
MRI 2.3.0
Warming up --------------------------------------
const_defined? 237.564k i/100ms
defined? 241.210k i/100ms
Calculating -------------------------------------
const_defined? 6.708M (± 5.3%) i/s - 133.986M in 20.029896s
defined? 7.355M (± 5.8%) i/s - 146.656M in 20.006529s
Comparison:
defined?: 7355217.2 i/s
const_defined?: 6707708.2 i/s - same-ish: difference falls within error
With ActiveSupport::Dependencies required:
JRuby 9.0.5.0
Warming up --------------------------------------
const_defined? 156.141k i/100ms
defined? 347.000 i/100ms
Calculating -------------------------------------
const_defined? 5.216M (± 6.8%) i/s - 103.834M in 20.003748s
defined? 3.484k (± 7.5%) i/s - 69.400k in 20.041216s
Comparison:
const_defined?: 5216398.2 i/s
defined?: 3483.7 i/s - 1497.36x slower
JRuby 1.7.23
/tmp ⚡ jruby -S check.rb
Warming up --------------------------------------
const_defined? 174.217k i/100ms
defined? 416.000 i/100ms
Calculating -------------------------------------
const_defined? 4.043M (± 4.8%) i/s - 80.662M
defined? 4.224k (± 5.1%) i/s - 84.448k
Comparison:
const_defined?: 4042664.2 i/s
defined?: 4224.1 i/s - 957.05x slower
MRI 2.3.0
/tmp ⚡ ruby check.rb
Warming up --------------------------------------
const_defined? 223.693k i/100ms
defined? 231.453k i/100ms
Calculating -------------------------------------
const_defined? 6.140M (± 5.9%) i/s - 122.360M in 19.998885s
defined? 6.191M (± 7.9%) i/s - 123.133M in 20.026093s
Comparison:
defined?: 6190901.7 i/s
const_defined?: 6140088.9 i/s - same-ish: difference falls within error
P.S.
- jruby-9.0.5.0 (2.2.3) 2016-01-26 7bee00d Java HotSpot(TM) 64-Bit Server VM 25.77-b03 on 1.8.0_77-b03 +jit [darwin-x86_64]
- jruby 1.7.23 (1.9.3p551) 2015-11-24 f496dd5 on Java HotSpot(TM) 64-Bit Server VM 1.8.0_77-b03 +jit [darwin-x86_64]
- ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15]
UPD:
/tmp ⚡ jruby --version
jruby 9.1.0.0-SNAPSHOT (2.3.0) 2016-04-19 2d27311 Java HotSpot(TM) 64-Bit Server VM 25.77-b03 on 1.8.0_77-b03 +jit [darwin-x86_64]
/tmp ⚡ jruby -S check.rb
Warming up --------------------------------------
const_defined? 154.530k i/100ms
defined? 923.000 i/100ms
Calculating -------------------------------------
const_defined? 7.035M (± 7.0%) i/s - 139.850M in 19.979653s
defined? 9.367k (± 5.2%) i/s - 187.369k in 20.055586s
Comparison:
const_defined?: 7034829.3 i/s
defined?: 9366.8 i/s - 751.04x slower
/tmp ⚡ jruby -S check.rb
Warming up --------------------------------------
const_defined? 197.363k i/100ms
defined? 360.000 i/100ms
Calculating -------------------------------------
const_defined? 7.055M (± 5.9%) i/s - 140.522M in 19.991747s
defined? 3.671k (± 3.9%) i/s - 73.440k in 20.034533s
Comparison:
const_defined?: 7054891.5 i/s
defined?: 3671.3 i/s - 1921.66x slower
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels