require 'benchmark'
require 'ostruct'
Rails.logger.level = 1
n = 100000
Benchmark.bm do |x|
x.report("10 variables") do
a, b, c, d, e, f, g, e, h, m = [1, 2, 3, 4, 5, '6', '7', '8', '9', '10']
Rails.cache.write('a', a)
Rails.cache.write('b', b)
Rails.cache.write('c', c)
Rails.cache.write('d', d)
Rails.cache.write('e', e)
Rails.cache.write('f', f)
Rails.cache.write('g', g)
Rails.cache.write('e', e)
Rails.cache.write('h', h)
Rails.cache.write('m', m)
n.times do
a = Rails.cache.read('a')
b = Rails.cache.read('b')
c = Rails.cache.read('c')
d = Rails.cache.read('d')
e = Rails.cache.read('e')
f = Rails.cache.read('f')
g = Rails.cache.read('g')
e = Rails.cache.read('e')
h = Rails.cache.read('h')
m = Rails.cache.read('m')
end
end
x.report("hash with 10 variables") do
hash = {
'a' => 1,
'b' => 2,
'c' => 3,
'd' => 4,
'e' => 5,
'f' => '6',
'g' => '7',
'e' => '8',
'h' => '9',
'm' => '10'
}
Rails.cache.write('hash', hash)
n.times do
hash = Rails.cache.read('hash')
end
end
x.report("array with 10 variables") do
array = [
['a', 1],
['b', 2],
['c', 3],
['d', 4],
['e', 5],
['f', '6'],
['g', '7'],
['e', '8'],
['h', '9'],
['m', '10'],
]
Rails.cache.write('array', array)
n.times do
array = Rails.cache.read('array')
end
end
end
user system total real
10 variables 42.670000 8.200000 50.870000 ( 52.095375)
hash with 10 variables 6.390000 0.810000 7.200000 ( 7.303731)
array with 10 variables 6.350000 0.820000 7.170000 ( 7.279306)