gdbm: ラッパーをPStoreと比べてみる

さすがにPStoreより遅かったら、作った意味もなさそうなので。

PStore

require 'pstore'

db = PStore.new("pstore.db")

1000.times do |i|
  db.transaction do
    db[i.to_s] = (i * i).to_s
  end
end

1000.times do |i|
  db.transaction(true) do
    db.fetch(i.to_s)
  end
end


~$ time ruby validate_pstore.rb

real 0m23.735s
user 0m0.015s
sys 0m0.031s

GDBMStore

require 'gdbmstore'

db = GDBMStore.new("gdbmstore.db")

1000.times do |i|
  db[i.to_s] = (i * i).to_s
end

1000.times do |i|
  db.fetch(i.to_s)
end


~$ time ruby validate_gdbmstore.rb

real 1m16.235s
user 0m0.015s
sys 0m0.046s

…うーん、3倍以上かかってるなぁ…