RubyのBenchmarkモジュールを使って、sleepメソッドが効いているか確認してみる。

open-uriとnokogiriを使ってホテル予約サイトをスクレイピングしているが、sleepメソッドがきちんと効いているか気になったので、Benchmarkモジュールを使って計測してみた。

方法

sleepメソッドを含むメソッドと含まないメソッドを2種類作る。

コード

Benchmark.bm(15) do |x| #sleepありの詳細ページ情報メソッド
  x.report "hotel_infor" do
    push_hotel_information_detail(row)
  end
end
Benchmark.bm(15) do |x|#sleep無しの詳細ページ情報メソッド
  x.report "hotel_infor_no" do
    push_hotel_information_detail_no_sleep(row)
  end
end

処理はホテル予約サイトの情報を取得して配列に入れいている。

結果

                      user     system      total        real
hotel_infor       0.150000   0.010000   0.160000 (  4.790870)
                      user     system      total        real
hotel_infor_no    0.170000   0.000000   0.170000 (  1.675842)

わかりやすく3秒スリープを入れてみたが、動作を確認できた。

参考記事。 Rubyでベンチマークをとる