この間作ったリングバッファを軽くベンチマークしてみました
リングバッファを作ってみました - 趣味的にっき
ベンチマークのコードは以下。
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)