J
jablan
Hi, I have some wierd results measuring Ruby's hash operations,
particulary indexing hash using two member string array. Have a look:
12.900000 0.050000 12.950000 ( 13.088721)
=> nil
7.700000 0.040000 7.740000 ( 7.858381)
=> nil
In other words, I just made array members slightly longer and working
with hash was considerably faster.
Why's that happening?
BTW,
jablan-mbp:~ $ ruby -v
ruby 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0]
particulary indexing hash using two member string array. Have a look:
10000require 'benchmark' => false
puts(Benchmark.measure do ?> h = {}
1000000.times do |i| ?> i1 = rand(100)
i2 = rand(100)
a = [i1.to_s, i2.to_s]
h[a] ||= 0
h[a] += 1
end
puts h.size
end)
12.900000 0.050000 12.950000 ( 13.088721)
=> nil
10000puts(Benchmark.measure do ?> h = {}
1000000.times do |i| ?> i1 = rand(100)
i2 = rand(100)
a = [i1.to_s + '00000', i2.to_s + '00000']
h[a] ||= 0
h[a] += 1
end
puts h.size
end)
7.700000 0.040000 7.740000 ( 7.858381)
=> nil
In other words, I just made array members slightly longer and working
with hash was considerably faster.
Why's that happening?
BTW,
jablan-mbp:~ $ ruby -v
ruby 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0]