Skip to content

Instantly share code, notes, and snippets.

@nahi
Created October 27, 2011 09:06
Show Gist options
  • Save nahi/1319112 to your computer and use it in GitHub Desktop.
Save nahi/1319112 to your computer and use it in GitHub Desktop.
require 'benchmark'
TIMES = 5000000
Benchmark.bmbm(40) do |x|
x.report('hoge[:fuga] = foo') do
hoge = {}
foo = :foo
TIMES.times do
hoge[:fuga] = foo
end
end
x.report('hoge.update(:fuga => foo)') do
hoge = {}
foo = :foo
TIMES.times do
hoge.update(:fuga => foo)
end
end
end
% ruby -v hash.rb
ruby 2.0.0dev (2011-10-21 trunk 33499) [x86_64-linux]
user system total real
hoge[:fuga] = foo 0.750000 0.000000 0.750000 ( 0.754151)
hoge.update(:fuga => foo) 2.740000 0.000000 2.740000 ( 2.754672)
% ruby187 -v hash.rb
ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
user system total real
hoge[:fuga] = foo 1.180000 0.000000 1.180000 ( 1.188576)
hoge.update(:fuga => foo) 2.750000 0.000000 2.750000 ( 2.759662)
% JAVA_HOME=/home/nahi/java/jdk1.7.0_b08 jruby -v hash.rb
jruby 1.7.0.dev (ruby-1.8.7-p330) (2011-10-26 1c99cf2) (Java HotSpot(TM) 64-Bit Server VM 1.7.0_02-ea) [linux-amd64-java]
user system total real
hoge[:fuga] = foo 0.648000 0.000000 0.648000 ( 0.606000)
hoge.update(:fuga => foo) 1.156000 0.000000 1.156000 ( 1.156000)
% JAVA_HOME=/home/nahi/java/jdk1.6.0_26 jruby -v hash.rb
jruby 1.7.0.dev (ruby-1.8.7-p330) (2011-10-26 1c99cf2) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_26) [linux-amd64-java]
user system total real
hoge[:fuga] = foo 0.739000 0.000000 0.739000 ( 0.700000)
hoge.update(:fuga => foo) 1.432000 0.000000 1.432000 ( 1.432000)
% rbx -v hash.rb
rubinius 2.0.0dev (1.8.7 77af8dea yyyy-mm-dd JI) [x86_64-unknown-linux-gnu]
user system total real
hoge[:fuga] = foo 1.036065 0.000000 1.036065 ( 1.048594)
hoge.update(:fuga => foo) 11.948746 0.008001 11.956747 ( 12.193963)
% rbx124 -v hash.rb
rubinius 1.2.4 (1.8.7 release 2011-07-05 JI) [x86_64-unknown-linux-gnu]
user system total real
hoge[:fuga] = foo 1.184074 0.004001 1.188075 ( 1.198592)
hoge.update(:fuga => foo) 10.312644 0.024001 10.336645 ( 10.487060)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment