-
Notifications
You must be signed in to change notification settings - Fork 4
vonconrad/csv-benchmark
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
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 0
No packages published