この間作ったリングバッファを軽くベンチマークしてみました

リングバッファを作ってみました - 趣味的にっき
ベンチマークのコードは以下。

require 'benchmark'

Benchmark.bm(12) do |x|
  x.report('RingBuffer') do
    buf = RingBuffer.new(10000)
    100000.times do |i|
      buf << i
    end
  end
  x.report('Array') do
    buf = Array.new(10000)
    100000.times do |i|
      buf << i
      buf.shift
    end
  end
end

ベンチマーク結果は以下です。わざわざクラスを作る効果はありそうです。

                  user     system      total        real
RingBuffer    0.451000   0.000000   0.451000 (  0.460000)
Array        18.316000   4.316000  22.632000 ( 22.903000)