cmp-compress is a tool to compare different compression tools.
Do you want to know how different compression tools compare, which compression flags are a good trade-off for your data, and which other flags are worth the effort? This is intended to give some hints.
Also see https://www.arp242.net/cmp-compress.html
Install with go install zgo.at/cmp-compress@latest.
Basic usage is:
% cmp-compress compare path-to-file1 path-to-file2
This produces a JSON file with the results. You can produce a text report with
cmp-compress fmt:
% cmp-compress compare path-to-file1 path-to-file2 >a.json
% cmp-compress fmt a.json
Use fmt -html for HTML output.
Run cmp-compress config to print the example configuration:
% cmp-compress config >config.toml
% cmp-compress compare -config config.toml /bin/ls
The entire input file is read in memory, and the compressed output is stored in memory as well. So you need enough memory to actually do this and may run in to trouble if you run this on a 100G file.
No effort is made to eliminate jitter; the compression program run once and that's that. In most cases the tool will run for long enough that it won't matter too much. If you want to compare the performance of compressing 20K of data then this is probably not the right tool (at least to measure compression time).