Created
June 2, 2018 02:49
-
-
Save headius/4982be842c5282d6de7e2d018c5cd262 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[] ~/projects/jruby $ cat blah.rb | |
require 'benchmark/ips' | |
Benchmark.ips do |x| | |
H = {key: :value}.freeze | |
x.report('keys') { | |
H.keys.first && | |
H.keys.first && | |
H.keys.first && | |
H.keys.first && | |
H.keys.first | |
} | |
x.report('each_key') { | |
H.each_key.first && | |
H.each_key.first && | |
H.each_key.first && | |
H.each_key.first && | |
H.each_key.first | |
} | |
x.report('first') { | |
H.first.first && | |
H.first.first && | |
H.first.first && | |
H.first.first && | |
H.first.first | |
} | |
x.report('flatten') { | |
H.flatten.first && | |
H.flatten.first && | |
H.flatten.first && | |
H.flatten.first && | |
H.flatten.first | |
} | |
x.compare! | |
end | |
[] ~/projects/jruby $ JAVA_OPTS=$GRAAL jruby -v -Xcompile.invokedynamic -Xfixnum.cache=false blah.rb | |
jruby 9.2.0.0 (2.5.0) 2018-05-30 d386338 GraalVM 1.0.0-rc1 25.71-b01-internal-jvmci-0.42 on 1.8.0_161-b12 +indy +jit [darwin-x86_64] | |
Warming up -------------------------------------- | |
keys 184.574k i/100ms | |
each_key 15.901k i/100ms | |
first 55.859k i/100ms | |
flatten 42.019k i/100ms | |
Calculating ------------------------------------- | |
keys 33.138M (± 5.0%) i/s - 164.824M in 4.991467s | |
each_key 286.528k (±24.0%) i/s - 763.248k in 5.030546s | |
first 946.603k (±10.2%) i/s - 4.469M in 5.055190s | |
flatten 656.361k (± 6.1%) i/s - 3.277M in 5.016448s | |
Comparison: | |
keys: 33137700.9 i/s | |
first: 946602.8 i/s - 35.01x slower | |
flatten: 656361.3 i/s - 50.49x slower | |
each_key: 286527.5 i/s - 115.65x slower | |
[] ~/projects/jruby $ /Library/Java/JavaVirtualMachines/graalvm/Contents/Home/bin/ruby -v blah.rb | |
truffleruby 1.0.0-rc1, like ruby 2.3.7 <native build with Graal> [x86_64-darwin] | |
Warming up -------------------------------------- | |
keys 961.330k i/100ms | |
each_key 23.504k i/100ms | |
first 800.983k i/100ms | |
flatten 55.507k i/100ms | |
Calculating ------------------------------------- | |
keys 8.535M (±40.1%) i/s - 36.531M in 5.028190s | |
each_key 333.279k (±31.5%) i/s - 1.434M in 5.108025s | |
first 58.686M (± 9.3%) i/s - 248.305M in 5.002389s | |
flatten 1.027M (±33.4%) i/s - 4.219M in 5.034057s | |
Comparison: | |
first: 58685913.4 i/s | |
keys: 8534539.3 i/s - 6.88x slower | |
flatten: 1027289.6 i/s - 57.13x slower | |
each_key: 333279.2 i/s - 176.09x slower |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment