image

  • フォト Amazonギフト券
    ※この時計の時刻は、閲覧しているパソコンのものであり、必ずしも正確な時間とは限りません

検索

最近のトラックバック

無料ブログはココログ

« 2011年6月25日 | トップページ | 2011年6月27日 »

2011年6月26日

2011-06-26

ruby から redis と tokyo-cabinet の利用を比較

ruby から redis と tokyo-cabinet の利用をして、速度を比較してみた。
redis と tc はそうとう差がある。測定用プログラムが間違っているか redis の設定がおかしいのか?

$ ruby sample00.rb
      user     system      total        real
Redis:set
30.420000  12.080000  42.500000 ( 77.195107)
Redis:get
  0.060000   0.010000   0.070000 (  0.123865)
TokyoTyrant:set
  2.280000   0.090000   2.370000 (  2.394154)
TokyoTyrant:get
  0.000000   0.000000   0.000000 (  0.001792)

以下がプログラム。(web 上で見つけた類似プログラムをベースにした)

$ cat sample00.rb
require 'rubygems'
require 'redis'
require 'tokyocabinet'

require 'benchmark'
require 'pp'

BENCH_TIMES_CREATE = 10000 * 65 # 1000
BENCH_TIMES_SELECT = 1000

include TokyoCabinet

@tc = HDB::new
@tc.open("tc.hdb", HDB::OWRITER | HDB::OCREAT)
if !@tc.vanish()
  ecode = @tc.ecode
  STDERR.printf("get error: %s\n", @tc.errmsg(ecode))
end

@rd = Redis.new
@rd.flushall

Benchmark.bm do |b|

  b.report("Redis:set\n") {
    1.upto BENCH_TIMES_CREATE do |i|
      @rd.set "foo_#{i}", "bar_#{i}"
    end
  }

  b.report("Redis:get\n") {
    1.upto BENCH_TIMES_SELECT do |i|
      @rd.get "foo_#{ i}"
    end
  }

  b.report("TokyoTyrant:set\n") {
    1.upto BENCH_TIMES_CREATE do |i|
      @tc["foo_#{i}"] = "bar_#{ i}"
    end
  }
  b.report("TokyoTyrant:get\n") {
    1.upto BENCH_TIMES_SELECT do |i|
      @tc["foo_#{i}"]
    end
  }
end


« 2011年6月25日 | トップページ | 2011年6月27日 »

mokuji

2013年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

google

  • twitter
  • __
  • _
    Googleボットチェッカー

合わせて読む

  • 合わせて読む
    フィードメーター - katoy: cocolog あわせて読みたい

リンク