トップ «前の日記(2014/06/05 (木) ) 最新 次の日記(2014/06/07 (土) )» 編集 RSS feed

HsbtDiary


2014/06/06 (金) [長年日記]

[ruby][redis] hiredis の簡易ベンチを取った

idobata.io の Gemfile を眺めていて、「あーそういえば hiredis なんてのもあったなあ」と思い出したので、実際にどれくらい早くなるのかベンチ取ってみた。hiredis は law-level な API を使ってるから早い、ということらしいよ。

require 'benchmark'
require 'redis'

n = 100_000
Benchmark.bm do |x|
  x.report {
    redis = Redis.new
    n.times {
      redis.set("mykey", "hello world")
      redis.get("mykey")
    }
  }
  x.report {
    require 'hiredis'
    require 'redis/connection/hiredis'
    redis = Redis.new
    n.times {
      redis.set("mykey", "hello world")
      redis.get("mykey")
    }
  }
end

こういう単純な set/get を繰り替えす奴で検証.

% ruby -v redis-bench.rb
ruby 2.2.0dev (2014-06-05 trunk 46357) [x86_64-darwin13]
       user     system      total        real
  11.190000   5.160000  16.350000 ( 21.709006)
   4.740000   4.180000   8.920000 ( 16.542826)

うん、確かに hiredis の方が早いみたい。積極的に使ってよさそう。