mirror of
https://github.com/facebook/zstd.git
synced 2025-12-11 00:06:10 -05:00
commit
e3a9351402
@ -161,6 +161,10 @@ the last one takes effect.
|
|||||||
|
|
||||||
Note: If `windowLog` is set to larger than 27, `--long=windowLog` or
|
Note: If `windowLog` is set to larger than 27, `--long=windowLog` or
|
||||||
`--memory=windowSize` needs to be passed to the decompressor.
|
`--memory=windowSize` needs to be passed to the decompressor.
|
||||||
|
* `--max`:
|
||||||
|
set advanced parameters to maximum compression.
|
||||||
|
warning: this setting is very slow and uses a lot of resources.
|
||||||
|
It's inappropriate for 32-bit mode and therefore disabled in this mode.
|
||||||
* `-D DICT`:
|
* `-D DICT`:
|
||||||
use `DICT` as Dictionary to compress or decompress FILE(s)
|
use `DICT` as Dictionary to compress or decompress FILE(s)
|
||||||
* `--patch-from FILE`:
|
* `--patch-from FILE`:
|
||||||
|
|||||||
@ -639,6 +639,22 @@ static unsigned parseCompressionParameters(const char* stringPtr, ZSTD_compressi
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void setMaxCompression(ZSTD_compressionParameters* params)
|
||||||
|
{
|
||||||
|
params->windowLog = ZSTD_WINDOWLOG_MAX;
|
||||||
|
params->chainLog = ZSTD_CHAINLOG_MAX;
|
||||||
|
params->hashLog = ZSTD_HASHLOG_MAX;
|
||||||
|
params->searchLog = ZSTD_SEARCHLOG_MAX;
|
||||||
|
params->minMatch = ZSTD_MINMATCH_MIN;
|
||||||
|
params->targetLength = ZSTD_TARGETLENGTH_MAX;
|
||||||
|
params->strategy = ZSTD_STRATEGY_MAX;
|
||||||
|
g_overlapLog = ZSTD_OVERLAPLOG_MAX;
|
||||||
|
g_ldmHashLog = ZSTD_LDM_HASHLOG_MAX;
|
||||||
|
g_ldmHashRateLog = 0; /* automatically derived */
|
||||||
|
g_ldmMinMatch = 16; /* heuristic */
|
||||||
|
g_ldmBucketSizeLog = ZSTD_LDM_BUCKETSIZELOG_MAX;
|
||||||
|
}
|
||||||
|
|
||||||
static void printVersion(void)
|
static void printVersion(void)
|
||||||
{
|
{
|
||||||
if (g_displayLevel < DISPLAY_LEVEL_DEFAULT) {
|
if (g_displayLevel < DISPLAY_LEVEL_DEFAULT) {
|
||||||
@ -794,22 +810,22 @@ static unsigned default_nbThreads(void) {
|
|||||||
CLEAN_RETURN(1); \
|
CLEAN_RETURN(1); \
|
||||||
} } }
|
} } }
|
||||||
|
|
||||||
#define NEXT_UINT32(val32) { \
|
#define NEXT_UINT32(val32) { \
|
||||||
const char* __nb; \
|
const char* __nb; \
|
||||||
NEXT_FIELD(__nb); \
|
NEXT_FIELD(__nb); \
|
||||||
val32 = readU32FromChar(&__nb); \
|
val32 = readU32FromChar(&__nb); \
|
||||||
if(*__nb != 0) { \
|
if(*__nb != 0) { \
|
||||||
errorOut("error: only numeric values with optional suffixes K, KB, KiB, M, MB, MiB are allowed"); \
|
errorOut("error: only numeric values with optional suffixes K, KB, KiB, M, MB, MiB are allowed"); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define NEXT_TSIZE(valTsize) { \
|
#define NEXT_TSIZE(valTsize) { \
|
||||||
const char* __nb; \
|
const char* __nb; \
|
||||||
NEXT_FIELD(__nb); \
|
NEXT_FIELD(__nb); \
|
||||||
valTsize = readSizeTFromChar(&__nb); \
|
valTsize = readSizeTFromChar(&__nb); \
|
||||||
if(*__nb != 0) { \
|
if(*__nb != 0) { \
|
||||||
errorOut("error: only numeric values with optional suffixes K, KB, KiB, M, MB, MiB are allowed"); \
|
errorOut("error: only numeric values with optional suffixes K, KB, KiB, M, MB, MiB are allowed"); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef enum { zom_compress, zom_decompress, zom_test, zom_bench, zom_train, zom_list } zstd_operation_mode;
|
typedef enum { zom_compress, zom_decompress, zom_test, zom_bench, zom_train, zom_list } zstd_operation_mode;
|
||||||
@ -1007,6 +1023,16 @@ int main(int argCount, const char* argv[])
|
|||||||
if (!strcmp(argument, "--fake-stderr-is-console")) { UTIL_fakeStderrIsConsole(); continue; }
|
if (!strcmp(argument, "--fake-stderr-is-console")) { UTIL_fakeStderrIsConsole(); continue; }
|
||||||
if (!strcmp(argument, "--trace-file-stat")) { UTIL_traceFileStat(); continue; }
|
if (!strcmp(argument, "--trace-file-stat")) { UTIL_traceFileStat(); continue; }
|
||||||
|
|
||||||
|
if (!strcmp(argument, "--max")) {
|
||||||
|
if (sizeof(void*)==4) {
|
||||||
|
DISPLAYLEVEL(2, "--max is incompatible with 32-bit mode \n");
|
||||||
|
badUsage(programName, originalArgument);
|
||||||
|
CLEAN_RETURN(1);
|
||||||
|
}
|
||||||
|
ultra=1; ldmFlag = 1; setMaxCompression(&compressionParams);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
/* long commands with arguments */
|
/* long commands with arguments */
|
||||||
#ifndef ZSTD_NODICT
|
#ifndef ZSTD_NODICT
|
||||||
if (longCommandWArg(&argument, "--train-cover")) {
|
if (longCommandWArg(&argument, "--train-cover")) {
|
||||||
|
|||||||
@ -5,14 +5,27 @@ set -v
|
|||||||
|
|
||||||
datagen > file
|
datagen > file
|
||||||
|
|
||||||
|
# Retrieve the program's version information
|
||||||
|
# Note: command echoing differs between macos and linux, so it's disabled below
|
||||||
|
set +v
|
||||||
|
version_info=$(zstd -V)
|
||||||
|
set -v
|
||||||
|
|
||||||
# Compress with various levels and ensure that their sizes are ordered
|
# Compress with various levels and ensure that their sizes are ordered
|
||||||
zstd --fast=10 file -o file-f10.zst -q
|
zstd --fast=10 file -o file-f10.zst -q
|
||||||
zstd --fast=1 file -o file-f1.zst -q
|
zstd --fast=1 file -o file-f1.zst -q
|
||||||
zstd -1 file -o file-1.zst -q
|
zstd -1 file -o file-1.zst -q
|
||||||
zstd -19 file -o file-19.zst -q
|
zstd -19 file -o file-19.zst -q
|
||||||
|
if echo "$version_info" | grep -q '32-bit'; then
|
||||||
|
# skip --max test: not enough address space
|
||||||
|
cp file-19.zst file-max.zst
|
||||||
|
else
|
||||||
|
zstd --max file -o file-max.zst -q
|
||||||
|
fi
|
||||||
|
|
||||||
zstd -t file-f10.zst file-f1.zst file-1.zst file-19.zst
|
zstd -t file-f10.zst file-f1.zst file-1.zst file-19.zst file-max.zst
|
||||||
|
|
||||||
|
cmp_size -le file-max.zst file-19.zst
|
||||||
cmp_size -lt file-19.zst file-1.zst
|
cmp_size -lt file-19.zst file-1.zst
|
||||||
cmp_size -lt file-1.zst file-f1.zst
|
cmp_size -lt file-1.zst file-f1.zst
|
||||||
cmp_size -lt file-f1.zst file-f10.zst
|
cmp_size -lt file-f1.zst file-f10.zst
|
||||||
|
|||||||
@ -1,15 +1,26 @@
|
|||||||
|
|
||||||
datagen > file
|
datagen > file
|
||||||
|
|
||||||
|
# Retrieve the program's version information
|
||||||
|
# Note: command echoing differs between macos and linux, so it's disabled below
|
||||||
|
set +v
|
||||||
|
|
||||||
# Compress with various levels and ensure that their sizes are ordered
|
# Compress with various levels and ensure that their sizes are ordered
|
||||||
zstd --fast=10 file -o file-f10.zst -q
|
zstd --fast=10 file -o file-f10.zst -q
|
||||||
zstd --fast=1 file -o file-f1.zst -q
|
zstd --fast=1 file -o file-f1.zst -q
|
||||||
zstd -1 file -o file-1.zst -q
|
zstd -1 file -o file-1.zst -q
|
||||||
zstd -19 file -o file-19.zst -q
|
zstd -19 file -o file-19.zst -q
|
||||||
|
if echo "$version_info" | grep -q '32-bit'; then
|
||||||
|
# skip --max test: not enough address space
|
||||||
|
cp file-19.zst file-max.zst
|
||||||
|
else
|
||||||
|
zstd --max file -o file-max.zst -q
|
||||||
|
fi
|
||||||
|
|
||||||
zstd -t file-f10.zst file-f1.zst file-1.zst file-19.zst
|
zstd -t file-f10.zst file-f1.zst file-1.zst file-19.zst file-max.zst
|
||||||
4 files decompressed : 262148 bytes total
|
5 files decompressed : 327685 bytes total
|
||||||
|
|
||||||
|
cmp_size -le file-max.zst file-19.zst
|
||||||
cmp_size -lt file-19.zst file-1.zst
|
cmp_size -lt file-19.zst file-1.zst
|
||||||
cmp_size -lt file-1.zst file-f1.zst
|
cmp_size -lt file-1.zst file-f1.zst
|
||||||
cmp_size -lt file-f1.zst file-f10.zst
|
cmp_size -lt file-f1.zst file-f10.zst
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user