Skip to content

Latest commit

 

History

History
46 lines (41 loc) · 3.42 KB

benchmarks.org

File metadata and controls

46 lines (41 loc) · 3.42 KB

Benchmarks

I ran some benchmarks against xsv, which was the only other open source fast csv manipulation tool that I could find online. xsv supports unicode files, and has a lot more features than csvm.

The ‘*4’ and ‘*2’ at the end of some command descriptions below indicate the number of threads. xsv uses a separate process for each command, and individual xsv processes don’t support multi threading. For details on how csvm does threading, checkout the Threading section in README.org

These benchmarks were generated by the run_benchmarks.bash script in the project dir (depends on hyperfine for benchmarking), on a laptop with an Intel i5 8th gen mobile processor. Its thermal throttling behaves differently for single and multi threaded loads, so this is just to give you a rough picture.

(view the file raw for slightly better formatting of the table)

commandavg [s]cputime(user) [s]cputime(system) [s]
<l><r><r><r>
csvm:100mb-filter rows0.7700.799 (103%)0.036 ( 4%)
xsv :100mb-filter rows1.0451.011 ( 96%)0.032 ( 3%)
csvm:100mb-filter rows*40.3541.366 (385%)0.079 ( 22%)
csvm:100mb-filter columns0.9380.965 (102%)0.038 ( 4%)
xsv :100mb-filter columns0.6920.652 ( 94%)0.039 ( 5%)
csvm:100mb-filter columns*40.4321.690 (391%)0.070 ( 16%)
csvm:100mb-sort5.5349.428 (170%)1.378 ( 24%)
xsv :100mb-sort6.6286.283 ( 94%)0.332 ( 5%)
csvm:100mb-sort*24.38612.791 (291%)2.269 ( 51%)
csvm:100mb-filter rows+columns0.9921.016 (102%)0.036 ( 3%)
xsv :100mb-filter rows+columns1.2682.009 (158%)0.112 ( 8%)
csvm:100mb-filter rows+columns*40.4531.774 (391%)0.071 ( 15%)
csvm:1000mb-filter rows+columns8.8959.171 (103%)0.268 ( 3%)
xsv :1000mb-filter rows+columns11.20517.670 (157%)1.005 ( 8%)
csvm:1000mb-filter rows+columns*43.94415.906 (403%)0.389 ( 9%)
csvm:100mb:filter rows+columns+sort3.6796.824 (185%)0.864 ( 23%)
xsv :100mb:filter rows+columns+sort5.6496.510 (115%)0.335 ( 5%)
csvm:100mb:filter rows+columns+sort*22.8119.191 (326%)1.154 ( 41%)