1These are some very basic and unscientific benchmarks of various commands
2provided by `xsv`. Please see below for more information.
3
4These benchmarks were run with
5[worldcitiespop_mil.csv](http://burntsushi.net/stuff/worldcitiespop_mil.csv),
6which is a random 1,000,000 row subset of the world city population dataset
7from the [Data Science Toolkit](https://github.com/petewarden/dstkdata).
8
9These benchmarks were run on an Intel i7-6900K (8 CPUs, 16 threads) with 64GB
10of memory.
11
12```
13count                   0.11 seconds   413.76  MB/sec
14flatten                 4.54 seconds   10.02   MB/sec
15flatten_condensed       4.45 seconds   10.22   MB/sec
16frequency               1.82 seconds   25.00   MB/sec
17index                   0.12 seconds   379.28  MB/sec
18sample_10               0.18 seconds   252.85  MB/sec
19sample_1000             0.18 seconds   252.85  MB/sec
20sample_100000           0.29 seconds   156.94  MB/sec
21search                  0.27 seconds   168.56  MB/sec
22select                  0.14 seconds   325.09  MB/sec
23search                  0.13 seconds   350.10  MB/sec
24select                  0.13 seconds   350.10  MB/sec
25sort                    2.18 seconds   20.87   MB/sec
26slice_one_middle        0.08 seconds   568.92  MB/sec
27slice_one_middle_index  0.01 seconds   4551.36 MB/sec
28stats                   1.09 seconds   41.75   MB/sec
29stats_index             0.15 seconds   303.42  MB/sec
30stats_everything        1.94 seconds   23.46   MB/sec
31stats_everything_index  0.93 seconds   48.93   MB/sec
32```
33
34### Details
35
36The purpose of these benchmarks is to provide a rough ballpark estimate of how
37fast each command is. My hope is that they can also catch significant
38performance regressions.
39
40The `count` command can be viewed as a sort of baseline of the fastest possible
41command that parses every record in CSV data.
42
43The benchmarks that end with `_index` are run with indexing enabled.
44