Skip to content

Instantly share code, notes, and snippets.

@n0ts
Created February 14, 2011 13:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save n0ts/825896 to your computer and use it in GitHub Desktop.
Save n0ts/825896 to your computer and use it in GitHub Desktop.
require 'rubygems'
require 'benchmark'
gem 'memcached', '=1.0.6'
require 'memcached'
TEST_DATA_NUM = 100
$memcached = Memcached::new('localhost:11211')
# ベンチマークを計測する
Benchmark.bm do |x|
x.report('memcached - set') {
a = ('a'..'z').to_a + ('A'..'Z').to_a + ('0'..'9').to_a
TEST_DATA_NUM.times {|i|
data = ''
((i + 1) * 10).times { data += a[rand(a.size)] }
$memcached.set((i + 1).to_s, data)
}
}
x.report('memcached - get_multi 1 key') {
1.step(TEST_DATA_NUM, 1){|i|
if $memcached.get(i.to_s) == nil
raise 'Could not get data from memcached - memcached - 1'
end
}
}
x.report('memcached - get_multi 5 keys') {
1.step(TEST_DATA_NUM, 5){|i|
keys = []
5.times {|ii| keys << (i + ii).to_s }
if $memcached.get(keys) == nil
raise 'Could not get data from memcached - memcached - 5'
end
}
}
x.report('memcached - get_multi 10 keys') {
1.step(TEST_DATA_NUM, 10){|i|
keys = []
10.times {|ii| keys << (i + ii).to_s }
if $memcached.get(keys) == nil
raise 'Could not get data from memcached - memcached - 10'
end
}
}
x.report('memcached - get_multi 100 keys') {
1.step(TEST_DATA_NUM, 100){|i|
keys = []
100.times {|ii| keys << (i + ii).to_s }
if $memcached.get(keys) == nil
raise 'Could not get data from memcached - memcached - 100'
end
}
}
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment