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