[regression] Add dictionary support

Dictionaries are prebuilt and saved as part of the data object.
The config decides whether or not to use the dictionary if it is
available. Configs that require dictionaries are only run with
data that have dictionaries. The method will skip configs that are
irrelevant, so for example ZSTD_compress() will skip configs with
dictionaries.

I've also trimmed the silesia source to 1MB per file (12 MB total),
and added 500 samples from the github data set with a dictionary.

I've intentionally added an extra line to the `results.csv` to make
the nightly build fail, so that we can see how CircleCI reports it.

Full list of changes:

* Add pre-built dictionaries to the data.
* Add `use_dictionary` and `no_pledged_src_size` flags to the config.
* Add a config using a dictionary for every level.
* Add a config that specifies no pledged source size.
* Support dictionaries and streaming in the `zstdcli` method.
* Add a context-reuse method using `ZSTD_compressCCtx()`.
* Clean up the formatting of the `results.csv` file to align columns.
* Add `--data`, `--config`, and `--method` flags to constrain each
  to a particular value. This is useful for debugging a failure
  or debugging a particular config/method/data.
This commit is contained in:
Nick Terrell
2018-11-30 18:23:01 -08:00
parent 386c9ab58a
commit e859862341
7 changed files with 657 additions and 226 deletions
+101 -43
View File
@@ -1,43 +1,101 @@
Data, Config, Method, Total compressed size
silesia.tar, level -5, simple, 106176430
silesia.tar, level -3, simple, 98476550
silesia.tar, level -1, simple, 87206767
silesia.tar, level 0, simple, 66996953
silesia.tar, level 1, simple, 73658303
silesia.tar, level 3, simple, 66996953
silesia.tar, level 4, simple, 65996020
silesia.tar, level 5, simple, 64421326
silesia.tar, level 6, simple, 62388673
silesia.tar, level 7, simple, 61159525
silesia.tar, level 9, simple, 60214921
silesia.tar, level 13, simple, 58428642
silesia.tar, level 16, simple, 56363759
silesia.tar, level 19, simple, 53274173
silesia, level -5, cli file, 106202112
silesia, level -3, cli file, 98518660
silesia, level -1, cli file, 87226203
silesia, level 0, cli file, 67049190
silesia, level 1, cli file, 73676282
silesia, level 3, cli file, 67049190
silesia, level 4, cli file, 66090040
silesia, level 5, cli file, 64503721
silesia, level 6, cli file, 62446177
silesia, level 7, cli file, 61217029
silesia, level 9, cli file, 60282841
silesia, level 13, cli file, 58480658
silesia, level 16, cli file, 56414170
silesia, level 19, cli file, 53365292
silesia.tar, level -5, cli file, 106250113
silesia.tar, level -3, cli file, 98550747
silesia.tar, level -1, cli file, 87227322
silesia.tar, level 0, cli file, 67111168
silesia.tar, level 1, cli file, 73694374
silesia.tar, level 3, cli file, 67111168
silesia.tar, level 4, cli file, 66154079
silesia.tar, level 5, cli file, 64546998
silesia.tar, level 6, cli file, 62458454
silesia.tar, level 7, cli file, 61231085
silesia.tar, level 9, cli file, 60310313
silesia.tar, level 13, cli file, 58517476
silesia.tar, level 16, cli file, 56448694
silesia.tar, level 19, cli file, 53444920
Data, Config, Method, Total compressed size
This line is intentionally added to see how the nightly job reports failures
silesia.tar, level -5, ZSTD_compress, 7160438
silesia.tar, level -3, ZSTD_compress, 6789024
silesia.tar, level -1, ZSTD_compress, 6195462
silesia.tar, level 0, ZSTD_compress, 4875071
silesia.tar, level 1, ZSTD_compress, 5339697
silesia.tar, level 3, ZSTD_compress, 4875071
silesia.tar, level 4, ZSTD_compress, 4813104
silesia.tar, level 5, ZSTD_compress, 4726961
silesia.tar, level 6, ZSTD_compress, 4654401
silesia.tar, level 7, ZSTD_compress, 4591933
silesia.tar, level 9, ZSTD_compress, 4554098
silesia.tar, level 13, ZSTD_compress, 4503496
silesia.tar, level 16, ZSTD_compress, 4387233
silesia.tar, level 19, ZSTD_compress, 4283123
silesia, level -5, ZSTD_compressCCtx, 7152294
silesia, level -3, ZSTD_compressCCtx, 6789969
silesia, level -1, ZSTD_compressCCtx, 6191548
silesia, level 0, ZSTD_compressCCtx, 4862377
silesia, level 1, ZSTD_compressCCtx, 5318036
silesia, level 3, ZSTD_compressCCtx, 4862377
silesia, level 4, ZSTD_compressCCtx, 4800629
silesia, level 5, ZSTD_compressCCtx, 4715005
silesia, level 6, ZSTD_compressCCtx, 4644055
silesia, level 7, ZSTD_compressCCtx, 4581559
silesia, level 9, ZSTD_compressCCtx, 4543862
silesia, level 13, ZSTD_compressCCtx, 4493931
silesia, level 16, ZSTD_compressCCtx, 4381885
silesia, level 19, ZSTD_compressCCtx, 4296899
github, level -5, ZSTD_compressCCtx, 232744
github, level -3, ZSTD_compressCCtx, 220611
github, level -1, ZSTD_compressCCtx, 176575
github, level 0, ZSTD_compressCCtx, 136397
github, level 1, ZSTD_compressCCtx, 143457
github, level 3, ZSTD_compressCCtx, 136397
github, level 4, ZSTD_compressCCtx, 136144
github, level 5, ZSTD_compressCCtx, 135106
github, level 6, ZSTD_compressCCtx, 135108
github, level 7, ZSTD_compressCCtx, 135108
github, level 9, ZSTD_compressCCtx, 135108
github, level 13, ZSTD_compressCCtx, 133741
github, level 16, ZSTD_compressCCtx, 133741
github, level 19, ZSTD_compressCCtx, 133717
silesia, level -5, zstdcli, 7152342
silesia, level -3, zstdcli, 6790021
silesia, level -1, zstdcli, 6191597
silesia, level 0, zstdcli, 4862425
silesia, level 1, zstdcli, 5318084
silesia, level 3, zstdcli, 4862425
silesia, level 4, zstdcli, 4800677
silesia, level 5, zstdcli, 4715053
silesia, level 6, zstdcli, 4644103
silesia, level 7, zstdcli, 4581607
silesia, level 9, zstdcli, 4543910
silesia, level 13, zstdcli, 4493979
silesia, level 16, zstdcli, 4381933
silesia, level 19, zstdcli, 4296947
silesia.tar, level -5, zstdcli, 7159586
silesia.tar, level -3, zstdcli, 6791018
silesia.tar, level -1, zstdcli, 6196283
silesia.tar, level 0, zstdcli, 4876730
silesia.tar, level 1, zstdcli, 5340312
silesia.tar, level 3, zstdcli, 4876730
silesia.tar, level 4, zstdcli, 4817723
silesia.tar, level 5, zstdcli, 4730389
silesia.tar, level 6, zstdcli, 4655708
silesia.tar, level 7, zstdcli, 4593407
silesia.tar, level 9, zstdcli, 4556135
silesia.tar, level 13, zstdcli, 4503500
silesia.tar, level 16, zstdcli, 4387237
silesia.tar, level 19, zstdcli, 4283127
silesia.tar, no source size, zstdcli, 4876726
github, level -5, zstdcli, 234744
github, level -5 with dict, zstdcli, 47528
github, level -3, zstdcli, 222611
github, level -3 with dict, zstdcli, 46394
github, level -1, zstdcli, 178575
github, level -1 with dict, zstdcli, 43401
github, level 0, zstdcli, 138397
github, level 0 with dict, zstdcli, 40316
github, level 1, zstdcli, 145457
github, level 1 with dict, zstdcli, 43242
github, level 3, zstdcli, 138397
github, level 3 with dict, zstdcli, 40316
github, level 4, zstdcli, 138144
github, level 4 with dict, zstdcli, 40292
github, level 5, zstdcli, 137106
github, level 5 with dict, zstdcli, 40938
github, level 6, zstdcli, 137108
github, level 6 with dict, zstdcli, 40632
github, level 7, zstdcli, 137108
github, level 7 with dict, zstdcli, 40766
github, level 9, zstdcli, 137108
github, level 9 with dict, zstdcli, 41326
github, level 13, zstdcli, 135741
github, level 13 with dict, zstdcli, 41670
github, level 16, zstdcli, 135741
github, level 16 with dict, zstdcli, 39940
github, level 19, zstdcli, 135717
github, level 19 with dict, zstdcli, 39576
1 Data Data, Config, Method, Total compressed size Config Method Total compressed size
2 silesia.tar This line is intentionally added to see how the nightly job reports failures level -5 simple 106176430
3 silesia.tar silesia.tar, level -5, ZSTD_compress, 7160438 level -3 simple 98476550
4 silesia.tar silesia.tar, level -3, ZSTD_compress, 6789024 level -1 simple 87206767
5 silesia.tar silesia.tar, level -1, ZSTD_compress, 6195462 level 0 simple 66996953
6 silesia.tar silesia.tar, level 0, ZSTD_compress, 4875071 level 1 simple 73658303
7 silesia.tar silesia.tar, level 1, ZSTD_compress, 5339697 level 3 simple 66996953
8 silesia.tar silesia.tar, level 3, ZSTD_compress, 4875071 level 4 simple 65996020
9 silesia.tar silesia.tar, level 4, ZSTD_compress, 4813104 level 5 simple 64421326
10 silesia.tar silesia.tar, level 5, ZSTD_compress, 4726961 level 6 simple 62388673
11 silesia.tar silesia.tar, level 6, ZSTD_compress, 4654401 level 7 simple 61159525
12 silesia.tar silesia.tar, level 7, ZSTD_compress, 4591933 level 9 simple 60214921
13 silesia.tar silesia.tar, level 9, ZSTD_compress, 4554098 level 13 simple 58428642
14 silesia.tar silesia.tar, level 13, ZSTD_compress, 4503496 level 16 simple 56363759
15 silesia.tar silesia.tar, level 16, ZSTD_compress, 4387233 level 19 simple 53274173
16 silesia silesia.tar, level 19, ZSTD_compress, 4283123 level -5 cli file 106202112
17 silesia silesia, level -5, ZSTD_compressCCtx, 7152294 level -3 cli file 98518660
18 silesia silesia, level -3, ZSTD_compressCCtx, 6789969 level -1 cli file 87226203
19 silesia silesia, level -1, ZSTD_compressCCtx, 6191548 level 0 cli file 67049190
20 silesia silesia, level 0, ZSTD_compressCCtx, 4862377 level 1 cli file 73676282
21 silesia silesia, level 1, ZSTD_compressCCtx, 5318036 level 3 cli file 67049190
22 silesia silesia, level 3, ZSTD_compressCCtx, 4862377 level 4 cli file 66090040
23 silesia silesia, level 4, ZSTD_compressCCtx, 4800629 level 5 cli file 64503721
24 silesia silesia, level 5, ZSTD_compressCCtx, 4715005 level 6 cli file 62446177
25 silesia silesia, level 6, ZSTD_compressCCtx, 4644055 level 7 cli file 61217029
26 silesia silesia, level 7, ZSTD_compressCCtx, 4581559 level 9 cli file 60282841
27 silesia silesia, level 9, ZSTD_compressCCtx, 4543862 level 13 cli file 58480658
28 silesia silesia, level 13, ZSTD_compressCCtx, 4493931 level 16 cli file 56414170
29 silesia silesia, level 16, ZSTD_compressCCtx, 4381885 level 19 cli file 53365292
30 silesia.tar silesia, level 19, ZSTD_compressCCtx, 4296899 level -5 cli file 106250113
31 silesia.tar github, level -5, ZSTD_compressCCtx, 232744 level -3 cli file 98550747
32 silesia.tar github, level -3, ZSTD_compressCCtx, 220611 level -1 cli file 87227322
33 silesia.tar github, level -1, ZSTD_compressCCtx, 176575 level 0 cli file 67111168
34 silesia.tar github, level 0, ZSTD_compressCCtx, 136397 level 1 cli file 73694374
35 silesia.tar github, level 1, ZSTD_compressCCtx, 143457 level 3 cli file 67111168
36 silesia.tar github, level 3, ZSTD_compressCCtx, 136397 level 4 cli file 66154079
37 silesia.tar github, level 4, ZSTD_compressCCtx, 136144 level 5 cli file 64546998
38 silesia.tar github, level 5, ZSTD_compressCCtx, 135106 level 6 cli file 62458454
39 silesia.tar github, level 6, ZSTD_compressCCtx, 135108 level 7 cli file 61231085
40 silesia.tar github, level 7, ZSTD_compressCCtx, 135108 level 9 cli file 60310313
41 silesia.tar github, level 9, ZSTD_compressCCtx, 135108 level 13 cli file 58517476
42 silesia.tar github, level 13, ZSTD_compressCCtx, 133741 level 16 cli file 56448694
43 silesia.tar github, level 16, ZSTD_compressCCtx, 133741 level 19 cli file 53444920
44 github, level 19, ZSTD_compressCCtx, 133717
45 silesia, level -5, zstdcli, 7152342
46 silesia, level -3, zstdcli, 6790021
47 silesia, level -1, zstdcli, 6191597
48 silesia, level 0, zstdcli, 4862425
49 silesia, level 1, zstdcli, 5318084
50 silesia, level 3, zstdcli, 4862425
51 silesia, level 4, zstdcli, 4800677
52 silesia, level 5, zstdcli, 4715053
53 silesia, level 6, zstdcli, 4644103
54 silesia, level 7, zstdcli, 4581607
55 silesia, level 9, zstdcli, 4543910
56 silesia, level 13, zstdcli, 4493979
57 silesia, level 16, zstdcli, 4381933
58 silesia, level 19, zstdcli, 4296947
59 silesia.tar, level -5, zstdcli, 7159586
60 silesia.tar, level -3, zstdcli, 6791018
61 silesia.tar, level -1, zstdcli, 6196283
62 silesia.tar, level 0, zstdcli, 4876730
63 silesia.tar, level 1, zstdcli, 5340312
64 silesia.tar, level 3, zstdcli, 4876730
65 silesia.tar, level 4, zstdcli, 4817723
66 silesia.tar, level 5, zstdcli, 4730389
67 silesia.tar, level 6, zstdcli, 4655708
68 silesia.tar, level 7, zstdcli, 4593407
69 silesia.tar, level 9, zstdcli, 4556135
70 silesia.tar, level 13, zstdcli, 4503500
71 silesia.tar, level 16, zstdcli, 4387237
72 silesia.tar, level 19, zstdcli, 4283127
73 silesia.tar, no source size, zstdcli, 4876726
74 github, level -5, zstdcli, 234744
75 github, level -5 with dict, zstdcli, 47528
76 github, level -3, zstdcli, 222611
77 github, level -3 with dict, zstdcli, 46394
78 github, level -1, zstdcli, 178575
79 github, level -1 with dict, zstdcli, 43401
80 github, level 0, zstdcli, 138397
81 github, level 0 with dict, zstdcli, 40316
82 github, level 1, zstdcli, 145457
83 github, level 1 with dict, zstdcli, 43242
84 github, level 3, zstdcli, 138397
85 github, level 3 with dict, zstdcli, 40316
86 github, level 4, zstdcli, 138144
87 github, level 4 with dict, zstdcli, 40292
88 github, level 5, zstdcli, 137106
89 github, level 5 with dict, zstdcli, 40938
90 github, level 6, zstdcli, 137108
91 github, level 6 with dict, zstdcli, 40632
92 github, level 7, zstdcli, 137108
93 github, level 7 with dict, zstdcli, 40766
94 github, level 9, zstdcli, 137108
95 github, level 9 with dict, zstdcli, 41326
96 github, level 13, zstdcli, 135741
97 github, level 13 with dict, zstdcli, 41670
98 github, level 16, zstdcli, 135741
99 github, level 16 with dict, zstdcli, 39940
100 github, level 19, zstdcli, 135717
101 github, level 19 with dict, zstdcli, 39576