Ruby 標準でついてくる CSVパーサは実は遅いらしい。
そのCSVパーサより速いパーサが "FasterCSV" 。そのまんまですね^^;
RubyGems がインストールされていれば、
「Rubyでやりたい」のならとりあえず読んでみて
$ sudo rubygems install fastercsv
だけで使えるようになる。
rubygems でインストールしたので、
require 'rubygems'
require 'fastercsv'
として、読み込んでおく。
実際に比較してみました。
実験データは
4061498916,生物と無生物のあいだ (講談社現代新書 1891)
4087203735,時間はどこで生まれるのか (集英社新書)
4480687629,「世界征服」は可能か? (ちくまプリマー新書 61)
4862481221,環境問題はなぜウソがまかり通るのか (Yosensha Paperbacks (024))
4166604163,もう牛を食べても安心か (文春新書)
このようなデータが1020行×52ファイル で、配列に取り込んで uniq をしてます。
あまり、良い比較データではないけど.....。
標準CSVパーサ
$ time ruby array_csv.rb
619
"時間はどこで生まれるのか (集英社新書)"
ruby array_csv.rb 24.39s user 0.15s system 98% cpu 24.802 total
yosshi@dh-sv-47[ 3:05PM] $ sudo gem install fastercsv
速いCSVパーサ
$ time ruby array_fastercsv.rb
619
"時間はどこで生まれるのか (集英社新書)"
ruby array_fastercsv.rb 2.41s user 0.09s system 97% cpu 2.560 total
確実に速くなってます。
参考
Rubyレシピブック 第2版 268の技
posted with amazlet at 08.06.07
青木 峰郎 後藤 裕蔵 高橋 征義
ソフトバンク クリエイティブ
売り上げランキング: 32806
ソフトバンク クリエイティブ
売り上げランキング: 32806
おすすめ度の平均:
プログラム言語一つにつきレシピ本は持っておくべき。「Rubyでやりたい」のならとりあえず読んでみて