From 8c33cfe0bc167274415f711643ce39cc02c0848f Mon Sep 17 00:00:00 2001 From: Stella Lau Date: Wed, 6 Sep 2017 11:03:35 -0700 Subject: [PATCH] Add ldm documentation in README --- doc/images/ldmCspeed.png | Bin 0 -> 72251 bytes doc/images/ldmDspeed.png | Bin 0 -> 27594 bytes programs/README.md | 58 +++++++++++++++++++++++++++++++++++++++ programs/zstdcli.c | 2 +- 4 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 doc/images/ldmCspeed.png create mode 100644 doc/images/ldmDspeed.png diff --git a/doc/images/ldmCspeed.png b/doc/images/ldmCspeed.png new file mode 100644 index 0000000000000000000000000000000000000000..d3bfce4c80123bc9bd6ef8f46c76fe79065defa8 GIT binary patch literal 72251 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

9o<3 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 literal 0 Hc-jL100001 diff --git a/programs/README.md b/programs/README.md index 8b65dfdb3..2aae52588 100644 --- a/programs/README.md +++ b/programs/README.md @@ -113,6 +113,7 @@ Advanced arguments : -c : force write to standard output, even if it is the console -l : print information about zstd compressed files --ultra : enable levels beyond 19, up to 22 (requires more memory) +--long : enable long distance matching (requires more memory) --no-dictID : don't write dictID into header (dictionary compression) --[no-]check : integrity check (default:enabled) -r : operate recursively on directories @@ -139,3 +140,60 @@ Benchmark arguments : -B# : cut file into independent blocks of size # (default: no block) --priority=rt : set process priority to real-time ``` + + +#### Long distance matching mode +The long distance matching mode, enabled with `--long`, is designed to improve +the compression ratio for files with long matches at a large distance (up to the +maximum window size, `128 MiB`) while still maintaining compression speed. + +Enabling this mode sets the window size to `128 MiB` and thus increases the memory +usage for both the compressor and decompressor. Performance in terms of speed is +dependent on long matches being found. Compression speed may degrade if few long +matches are found. Decompression speed usually improves when there are many long +distance matches. + +Below are graphs comparing the compression speed, compression ratio, and +decompression speed with and without long distance matching on an ideal use +case: a tar of four versions of clang (versions `3.4.1`, `3.4.2`, `3.5.0`, +`3.5.1`) with a total size of `244889600 B`. This is an ideal use case as there +are many long distance matches within the maximum window size of `128 MiB` (each +version is less than `128 MiB`). + +Compression Speed vs Ratio | Decompression Speed +---------------------------|--------------------- +![Compression Speed vs Ratio](../doc/images/ldmCspeed.png "Compression Speed vs Ratio") | ![Decompression Speed](../doc/images/ldmDspeed.png "Decompression Speed") + +| Method | Compression ratio | Compression speed | Decompression speed | +|:-------|------------------:|-------------------------:|---------------------------:| +| `zstd -1` | `5.065` | `284.8 MB/s` | `759.3 MB/s` | +| `zstd -5` | `5.826` | `124.9 MB/s` | `674.0 MB/s` | +| `zstd -10` | `6.504` | `29.5 MB/s` | `771.3 MB/s` | +| `zstd -1 --long` | `17.426` | `220.6 MB/s` | `1638.4 MB/s` | +| `zstd -5 --long` | `19.661` | `165.5 MB/s` | `1530.6 MB/s`| +| `zstd -10 --long`| `21.949` | `75.6 MB/s` | `1632.6 MB/s`| + +On this file, the compression ratio improves significantly with minimal impact +on compression speed, and the decompression speed doubles. + +On the other extreme, compressing a file with few long distance matches (such as +the [Silesia compression corpus]) will likely lead to a deterioration in +compression speed (for lower levels) with minimal change in compression ratio. + +The below table illustrates this on the [Silesia compression corpus]. + +[Silesia compression corpus]: http://sun.aei.polsl.pl/~sdeor/index.php?page=silesia + +| Method | Compression ratio | Compression speed | Decompression speed | +|:-------|------------------:|-------------------------:|---------------------------:| +| `zstd -1` | `2.878` | `231.7 MB/s` | `594.4 MB/s` | +| `zstd -1 --long` | `2.929` | `106.5 MB/s` | `517.9 MB/s` | +| `zstd -5` | `3.274` | `77.1 MB/s` | `464.2 MB/s` | +| `zstd -5 --long` | `3.319` | `51.7 MB/s` | `371.9 MB/s` | +| `zstd -10` | `3.523` | `16.4 MB/s` | `489.2 MB/s` | +| `zstd -10 --long`| `3.566` | `16.2 MB/s` | `415.7 MB/s` | + + + + + diff --git a/programs/zstdcli.c b/programs/zstdcli.c index a3d508515..941dc5992 100644 --- a/programs/zstdcli.c +++ b/programs/zstdcli.c @@ -128,7 +128,7 @@ static int usage_advanced(const char* programName) DISPLAY( " -l : print information about zstd compressed files \n"); #ifndef ZSTD_NOCOMPRESS DISPLAY( "--ultra : enable levels beyond %i, up to %i (requires more memory)\n", ZSTDCLI_CLEVEL_MAX, ZSTD_maxCLevel()); - DISPLAY( "--long : enable long distance matching\n"); + DISPLAY( "--long : enable long distance matching (requires more memory)\n"); #ifdef ZSTD_MULTITHREAD DISPLAY( " -T# : use # threads for compression (default:1) \n"); DISPLAY( " -B# : select size of each job (default:0==automatic) \n"); -- 2.47.2