RubyGemsとFasterCSVと

ネットでいろいろ見ていたら、こんなRubyライブラリを発見した。
FasterCSV - Ruby
通常のCSVライブラリより高速、という名前の代物だけど、いったいどれくらい早いのかが気になるので、とりあえずテストしてみることにした。
その前にインストールにはRubyGemsというものを使う必要がある。
WindowsのOneClickInstallerでRubyをインストールした場合、最初から入っているとのことなので、本当か?と思い、コンソールでタイプしてみる。

> gem help
RubyGems is a sophisticated package manager for Ruby.  This is a
basic help message containing pointers to more information.

  Usage:
    gem -h/--help
    gem -v/--version
    gem command [arguments...] [options...]

  Examples:
    gem install rake
    gem list --local
    gem build package.gemspec
    gem help install

  Further help:
    gem help commands            list all 'gem' commands
    gem help examples            show some examples of usage
    gem help <COMMAND>           show help on COMMAND
                                   (e.g. 'gem help install')
  Further information:
    http://rubygems.rubyforge.org

本当に入っていました!超便利!すばらしい裏方さん!
では、早速インストール。

> gem install fastercsv

とタイプし、しばらく待つだけでインストール完了〜。
超便利ー、RubyGems
それで、

> ruby -r profile test.rb 2> test.log

として、比較してみましたら、圧倒的にFasterCSVの方が早い。
インストールの必要性があることだけ気に留めておいて、とりあえず今後はこっちを採用していくことにします。

ちなみに使用したテストコードは以下のようなもの。foreachを使って処理するだけのコードで、ちょっと偏りがあるかもしれませんが、まぁ、自分が使っているコードはこんな感じなので。

# 普通のCSV.
require 'CSV'
$filename = "test.csv"
$var      = -1
CSV.foreach( $filename ) do |row|
    if row[0] != nil then
        $var = row[0].to_i
        p $var
    end
end

# FasterCSV.
require 'FasterCSV'
$filename = "test.csv"
$var      = -1
FasterCSV.foreach( $filename ) do |row|
    if row[0] != nil then
        $var = row[0].to_i
        p $var
    end
end