Skip to content

vonconrad/csv-benchmark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple benchmarking script for comparing different Ruby csv parsers.

Some of these gems will only work with MRI 1.8, as they are native extensions.

Results
=======

Testing csv/presidents.csv

               user     system      total        real
csv        0.020000   0.000000   0.020000 (  0.026629)
fastercsv  0.010000   0.000000   0.010000 (  0.001558)
lightcsv   0.000000   0.000000   0.000000 (  0.002036)
excelsior  0.000000   0.000000   0.000000 (  0.000305)
ccsv       0.010000   0.000000   0.010000 (  0.011097)
csvscan    0.000000   0.000000   0.000000 (  0.000221)

Testing csv/geoip.csv

               user     system      total        real
csv       52.720000   0.140000  52.860000 ( 53.465961)
fastercsv 11.090000   0.050000  11.140000 ( 11.327960)
lightcsv   5.470000   0.030000   5.500000 (  5.508147)
excelsior  0.580000   0.010000   0.590000 (  0.592589)
ccsv       0.470000   0.020000   0.490000 (  0.480324)
csvscan    0.420000   0.010000   0.430000 (  0.435153)

Parsing Error Handling
======================

While CSVScan, cCSV, and Excelsior may be the fastest, they do it by having little-to-no error catching/handling.

The slowest three (CSV, FasterCSV, and LightCSV) do catch paring errors and raise exceptions for you to handle.

Credits
=======

Sample CSVs are taken from:
presidents.csv > See People Software (http://seepeoplesoftware.com/downloads/older-versions/11-sample-csv-file-of-us-presidents.html)
geoip.csv 		 > MaxMind (http://www.maxmind.com/app/geolitecountry)

If you want to try a (significantly) larger file, MaxMind has a city-level geoip file as well: http://www.maxmind.com/app/geolitecity

About

App for benchmarking Ruby CSV libraries

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages