Merge branch 'dev' into benchfn

This commit is contained in:
Yann Collet
2019-04-10 11:57:05 -07:00
84 changed files with 4136 additions and 2229 deletions
+1 -1
View File
@@ -33,7 +33,7 @@ endif
CFLAGS ?= -O3
CFLAGS += -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \
-Wstrict-aliasing=1 -Wswitch-enum -Wdeclaration-after-statement \
-Wstrict-prototypes -Wundef -Wformat-security \
-Wstrict-prototypes -Wundef \
-Wvla -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings \
-Wredundant-decls -Wmissing-prototypes
CFLAGS += $(DEBUGFLAGS) $(MOREFLAGS)
+3 -1
View File
@@ -938,7 +938,9 @@ static size_t writeSequences(U32* seed, frame_t* frame, seqStore_t* seqStorePtr,
FSE_CState_t stateOffsetBits;
FSE_CState_t stateLitLength;
CHECK_E(BIT_initCStream(&blockStream, op, oend-op), dstSize_tooSmall); /* not enough space remaining */
RETURN_ERROR_IF(
ERR_isError(BIT_initCStream(&blockStream, op, oend-op)),
dstSize_tooSmall, "not enough space remaining");
/* first symbols */
FSE_initCState2(&stateMatchLength, CTable_MatchLength, mlCodeTable[nbSeq-1]);
+15 -5
View File
@@ -27,16 +27,16 @@ PRGDIR = ../../programs
FUZZ_CPPFLAGS := -I$(ZSTDDIR) -I$(ZSTDDIR)/common -I$(ZSTDDIR)/compress \
-I$(ZSTDDIR)/dictBuilder -I$(ZSTDDIR)/deprecated -I$(PRGDIR) \
$(CPPFLAGS)
-DZSTD_MULTITHREAD $(CPPFLAGS)
FUZZ_EXTRA_FLAGS := -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \
-Wstrict-aliasing=1 -Wswitch-enum -Wdeclaration-after-statement \
-Wstrict-prototypes -Wundef -Wformat-security \
-Wstrict-prototypes -Wundef \
-Wvla -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings \
-Wredundant-decls \
-g -fno-omit-frame-pointer
FUZZ_CFLAGS := $(FUZZ_EXTRA_FLAGS) $(CFLAGS)
FUZZ_CXXFLAGS := $(FUZZ_EXTRA_FLAGS) -std=c++11 $(CXXFLAGS)
FUZZ_LDFLAGS := $(LDFLAGS)
FUZZ_LDFLAGS := -pthread $(LDFLAGS)
FUZZ_ARFLAGS := $(ARFLAGS)
FUZZ_TARGET_FLAGS = $(FUZZ_CPPFLAGS) $(FUZZ_CXXFLAGS) $(FUZZ_LDFLAGS)
@@ -46,11 +46,13 @@ FUZZ_SRC := $(PRGDIR)/util.c zstd_helpers.c
ZSTDCOMMON_SRC := $(ZSTDDIR)/common/*.c
ZSTDCOMP_SRC := $(ZSTDDIR)/compress/*.c
ZSTDDECOMP_SRC := $(ZSTDDIR)/decompress/*.c
ZSTDDICT_SRC := $(ZSTDDIR)/dictBuilder/*.c
FUZZ_SRC := \
$(FUZZ_SRC) \
$(ZSTDDECOMP_SRC) \
$(ZSTDCOMMON_SRC) \
$(ZSTDCOMP_SRC)
$(ZSTDCOMP_SRC) \
$(ZSTDDICT_SRC)
FUZZ_OBJ := $(patsubst %.c,%.o, $(wildcard $(FUZZ_SRC)))
@@ -65,7 +67,9 @@ FUZZ_TARGETS := \
block_round_trip \
simple_decompress \
stream_decompress \
block_decompress
block_decompress \
dictionary_round_trip \
dictionary_decompress
all: $(FUZZ_TARGETS)
@@ -90,6 +94,12 @@ stream_decompress: $(FUZZ_HEADERS) $(FUZZ_OBJ) stream_decompress.o
block_decompress: $(FUZZ_HEADERS) $(FUZZ_OBJ) block_decompress.o
$(CXX) $(FUZZ_TARGET_FLAGS) $(FUZZ_OBJ) block_decompress.o $(LIB_FUZZING_ENGINE) -o $@
dictionary_round_trip: $(FUZZ_HEADERS) $(FUZZ_OBJ) dictionary_round_trip.o
$(CXX) $(FUZZ_TARGET_FLAGS) $(FUZZ_OBJ) dictionary_round_trip.o $(LIB_FUZZING_ENGINE) -o $@
dictionary_decompress: $(FUZZ_HEADERS) $(FUZZ_OBJ) dictionary_decompress.o
$(CXX) $(FUZZ_TARGET_FLAGS) $(FUZZ_OBJ) dictionary_decompress.o $(LIB_FUZZING_ENGINE) -o $@
libregression.a: $(FUZZ_HEADERS) $(PRGDIR)/util.h $(PRGDIR)/util.c regression_driver.o
$(AR) $(FUZZ_ARFLAGS) $@ regression_driver.o
+64
View File
@@ -0,0 +1,64 @@
/*
* Copyright (c) 2016-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under both the BSD-style license (found in the
* LICENSE file in the root directory of this source tree) and the GPLv2 (found
* in the COPYING file in the root directory of this source tree).
*/
/**
* This fuzz target attempts to decompress the fuzzed data with the dictionary
* decompression function to ensure the decompressor never crashes. It does not
* fuzz the dictionary.
*/
#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
#include "fuzz_helpers.h"
#include "zstd_helpers.h"
static ZSTD_DCtx *dctx = NULL;
static void* rBuf = NULL;
static size_t bufSize = 0;
int LLVMFuzzerTestOneInput(const uint8_t *src, size_t size)
{
FUZZ_dict_t dict;
size_t neededBufSize;
uint32_t seed = FUZZ_seed(&src, &size);
neededBufSize = MAX(20 * size, (size_t)256 << 10);
/* Allocate all buffers and contexts if not already allocated */
if (neededBufSize > bufSize) {
free(rBuf);
rBuf = malloc(neededBufSize);
bufSize = neededBufSize;
FUZZ_ASSERT(rBuf);
}
if (!dctx) {
dctx = ZSTD_createDCtx();
FUZZ_ASSERT(dctx);
}
dict = FUZZ_train(src, size, &seed);
if (FUZZ_rand32(&seed, 0, 1) == 0) {
ZSTD_decompress_usingDict(dctx,
rBuf, neededBufSize,
src, size,
dict.buff, dict.size);
} else {
FUZZ_ZASSERT(ZSTD_DCtx_loadDictionary_advanced(
dctx, dict.buff, dict.size,
(ZSTD_dictLoadMethod_e)FUZZ_rand32(&seed, 0, 1),
(ZSTD_dictContentType_e)FUZZ_rand32(&seed, 0, 2)));
ZSTD_decompressDCtx(dctx, rBuf, neededBufSize, src, size);
}
free(dict.buff);
#ifndef STATEFUL_FUZZING
ZSTD_freeDCtx(dctx); dctx = NULL;
#endif
return 0;
}
+106
View File
@@ -0,0 +1,106 @@
/*
* Copyright (c) 2016-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under both the BSD-style license (found in the
* LICENSE file in the root directory of this source tree) and the GPLv2 (found
* in the COPYING file in the root directory of this source tree).
*/
/**
* This fuzz target performs a zstd round-trip test (compress & decompress) with
* a dictionary, compares the result with the original, and calls abort() on
* corruption.
*/
#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "fuzz_helpers.h"
#include "zstd_helpers.h"
static const int kMaxClevel = 19;
static ZSTD_CCtx *cctx = NULL;
static ZSTD_DCtx *dctx = NULL;
static uint32_t seed;
static size_t roundTripTest(void *result, size_t resultCapacity,
void *compressed, size_t compressedCapacity,
const void *src, size_t srcSize)
{
ZSTD_dictContentType_e dictContentType = ZSTD_dct_auto;
FUZZ_dict_t dict = FUZZ_train(src, srcSize, &seed);
size_t cSize;
if ((FUZZ_rand(&seed) & 15) == 0) {
int const cLevel = FUZZ_rand(&seed) % kMaxClevel;
cSize = ZSTD_compress_usingDict(cctx,
compressed, compressedCapacity,
src, srcSize,
dict.buff, dict.size,
cLevel);
} else {
dictContentType = FUZZ_rand32(&seed, 0, 2);
FUZZ_setRandomParameters(cctx, srcSize, &seed);
/* Disable checksum so we can use sizes smaller than compress bound. */
FUZZ_ZASSERT(ZSTD_CCtx_setParameter(cctx, ZSTD_c_checksumFlag, 0));
FUZZ_ZASSERT(ZSTD_CCtx_loadDictionary_advanced(
cctx, dict.buff, dict.size,
(ZSTD_dictLoadMethod_e)FUZZ_rand32(&seed, 0, 1),
dictContentType));
cSize = ZSTD_compress2(cctx, compressed, compressedCapacity, src, srcSize);
}
FUZZ_ZASSERT(cSize);
FUZZ_ZASSERT(ZSTD_DCtx_loadDictionary_advanced(
dctx, dict.buff, dict.size,
(ZSTD_dictLoadMethod_e)FUZZ_rand32(&seed, 0, 1),
dictContentType));
{
size_t const ret = ZSTD_decompressDCtx(
dctx, result, resultCapacity, compressed, cSize);
free(dict.buff);
return ret;
}
}
int LLVMFuzzerTestOneInput(const uint8_t *src, size_t size)
{
size_t const rBufSize = size;
void* rBuf = malloc(rBufSize);
size_t cBufSize = ZSTD_compressBound(size);
void* cBuf;
seed = FUZZ_seed(&src, &size);
/* Half of the time fuzz with a 1 byte smaller output size.
* This will still succeed because we force the checksum to be disabled,
* giving us 4 bytes of overhead.
*/
cBufSize -= FUZZ_rand32(&seed, 0, 1);
cBuf = malloc(cBufSize);
if (!cctx) {
cctx = ZSTD_createCCtx();
FUZZ_ASSERT(cctx);
}
if (!dctx) {
dctx = ZSTD_createDCtx();
FUZZ_ASSERT(dctx);
}
{
size_t const result =
roundTripTest(rBuf, rBufSize, cBuf, cBufSize, src, size);
FUZZ_ZASSERT(result);
FUZZ_ASSERT_MSG(result == size, "Incorrect regenerated size");
FUZZ_ASSERT_MSG(!memcmp(src, rBuf, size), "Corruption!");
}
free(rBuf);
free(cBuf);
#ifndef STATEFUL_FUZZING
ZSTD_freeCCtx(cctx); cctx = NULL;
ZSTD_freeDCtx(dctx); dctx = NULL;
#endif
return 0;
}
+19 -3
View File
@@ -34,6 +34,8 @@ TARGETS = [
'simple_decompress',
'stream_decompress',
'block_decompress',
'dictionary_round_trip',
'dictionary_decompress',
]
ALL_TARGETS = TARGETS + ['all']
FUZZ_RNG_SEED_SIZE = 4
@@ -192,11 +194,21 @@ def build_parser(args):
default=LIB_FUZZING_ENGINE,
help=('The fuzzing engine to use e.g. /path/to/libFuzzer.a '
"(default: $LIB_FUZZING_ENGINE='{})".format(LIB_FUZZING_ENGINE)))
parser.add_argument(
fuzz_group = parser.add_mutually_exclusive_group()
fuzz_group.add_argument(
'--enable-coverage',
dest='coverage',
action='store_true',
help='Enable coverage instrumentation (-fsanitize-coverage)')
fuzz_group.add_argument(
'--enable-fuzzer',
dest='fuzzer',
action='store_true',
help=('Enable clang fuzzer (-fsanitize=fuzzer). When enabled '
'LIB_FUZZING_ENGINE is ignored')
)
parser.add_argument(
'--enable-asan', dest='asan', action='store_true', help='Enable UBSAN')
parser.add_argument(
@@ -364,13 +376,17 @@ def build(args):
'-DFUZZ_RNG_SEED_SIZE={}'.format(args.fuzz_rng_seed_size),
]
mflags += ['LIB_FUZZING_ENGINE={}'.format(args.lib_fuzzing_engine)]
# Set flags for options
assert not (args.fuzzer and args.coverage)
if args.coverage:
common_flags += [
'-fsanitize-coverage=trace-pc-guard,indirect-calls,trace-cmp'
]
if args.fuzzer:
common_flags += ['-fsanitize=fuzzer']
args.lib_fuzzing_engine = ''
mflags += ['LIB_FUZZING_ENGINE={}'.format(args.lib_fuzzing_engine)]
if args.sanitize_recover:
recover_flags = ['-fsanitize-recover=all']
+7 -2
View File
@@ -40,8 +40,13 @@ int main(int argc, char const **argv) {
size_t readSize;
FILE *file;
/* Check that it is a regular file, and that the fileSize is valid */
FUZZ_ASSERT_MSG(UTIL_isRegularFile(fileName), fileName);
/* Check that it is a regular file, and that the fileSize is valid.
* If it is not a regular file, then it may have been deleted since we
* constructed the list, so just skip it.
*/
if (!UTIL_isRegularFile(fileName)) {
continue;
}
FUZZ_ASSERT_MSG(fileSize <= kMaxFileSize, fileName);
/* Ensure we have a large enough buffer allocated */
if (fileSize > bufferSize) {
+16 -24
View File
@@ -25,9 +25,6 @@ static const int kMaxClevel = 19;
static ZSTD_CCtx *cctx = NULL;
static ZSTD_DCtx *dctx = NULL;
static void* cBuf = NULL;
static void* rBuf = NULL;
static size_t bufSize = 0;
static uint32_t seed;
static size_t roundTripTest(void *result, size_t resultCapacity,
@@ -36,16 +33,8 @@ static size_t roundTripTest(void *result, size_t resultCapacity,
{
size_t cSize;
if (FUZZ_rand(&seed) & 1) {
ZSTD_inBuffer in = {src, srcSize, 0};
ZSTD_outBuffer out = {compressed, compressedCapacity, 0};
size_t err;
ZSTD_CCtx_reset(cctx, ZSTD_reset_session_only);
FUZZ_setRandomParameters(cctx, srcSize, &seed);
err = ZSTD_compressStream2(cctx, &out, &in, ZSTD_e_end);
FUZZ_ZASSERT(err);
FUZZ_ASSERT(err == 0);
cSize = out.pos;
cSize = ZSTD_compress2(cctx, compressed, compressedCapacity, src, srcSize);
} else {
int const cLevel = FUZZ_rand(&seed) % kMaxClevel;
cSize = ZSTD_compressCCtx(
@@ -57,20 +46,21 @@ static size_t roundTripTest(void *result, size_t resultCapacity,
int LLVMFuzzerTestOneInput(const uint8_t *src, size_t size)
{
size_t neededBufSize;
size_t const rBufSize = size;
void* rBuf = malloc(rBufSize);
size_t cBufSize = ZSTD_compressBound(size);
void* cBuf;
seed = FUZZ_seed(&src, &size);
neededBufSize = ZSTD_compressBound(size);
/* Half of the time fuzz with a 1 byte smaller output size.
* This will still succeed because we don't use a dictionary, so the dictID
* field is empty, giving us 4 bytes of overhead.
*/
cBufSize -= FUZZ_rand32(&seed, 0, 1);
cBuf = malloc(cBufSize);
FUZZ_ASSERT(cBuf && rBuf);
/* Allocate all buffers and contexts if not already allocated */
if (neededBufSize > bufSize) {
free(cBuf);
free(rBuf);
cBuf = malloc(neededBufSize);
rBuf = malloc(neededBufSize);
bufSize = neededBufSize;
FUZZ_ASSERT(cBuf && rBuf);
}
if (!cctx) {
cctx = ZSTD_createCCtx();
FUZZ_ASSERT(cctx);
@@ -82,11 +72,13 @@ int LLVMFuzzerTestOneInput(const uint8_t *src, size_t size)
{
size_t const result =
roundTripTest(rBuf, neededBufSize, cBuf, neededBufSize, src, size);
roundTripTest(rBuf, rBufSize, cBuf, cBufSize, src, size);
FUZZ_ZASSERT(result);
FUZZ_ASSERT_MSG(result == size, "Incorrect regenerated size");
FUZZ_ASSERT_MSG(!memcmp(src, rBuf, size), "Corruption!");
}
free(rBuf);
free(cBuf);
#ifndef STATEFUL_FUZZING
ZSTD_freeCCtx(cctx); cctx = NULL;
ZSTD_freeDCtx(dctx); dctx = NULL;
+1 -3
View File
@@ -62,9 +62,8 @@ int LLVMFuzzerTestOneInput(const uint8_t *src, size_t size)
if (!dstream) {
dstream = ZSTD_createDStream();
FUZZ_ASSERT(dstream);
FUZZ_ASSERT(!ZSTD_isError(ZSTD_initDStream(dstream)));
} else {
FUZZ_ASSERT(!ZSTD_isError(ZSTD_resetDStream(dstream)));
FUZZ_ZASSERT(ZSTD_DCtx_reset(dstream, ZSTD_reset_session_only));
}
while (size > 0) {
@@ -73,7 +72,6 @@ int LLVMFuzzerTestOneInput(const uint8_t *src, size_t size)
ZSTD_outBuffer out = makeOutBuffer();
size_t const rc = ZSTD_decompressStream(dstream, &out, &in);
if (ZSTD_isError(rc)) goto error;
if (rc == 0) FUZZ_ASSERT(!ZSTD_isError(ZSTD_resetDStream(dstream)));
}
}
+1 -1
View File
@@ -63,7 +63,7 @@ static size_t compress(uint8_t *dst, size_t capacity,
ZSTD_inBuffer in = makeInBuffer(&src, &srcSize);
/* Mode controls the action. If mode == -1 we pick a new mode */
int mode = -1;
while (in.pos < in.size) {
while (in.pos < in.size || mode != -1) {
ZSTD_outBuffer out = makeOutBuffer(dst, capacity);
/* Previous action finished, pick a new mode. */
if (mode == -1) mode = FUZZ_rand(&seed) % 10;
+54 -1
View File
@@ -8,10 +8,14 @@
*/
#define ZSTD_STATIC_LINKING_ONLY
#define ZDICT_STATIC_LINKING_ONLY
#include <string.h>
#include "zstd_helpers.h"
#include "fuzz_helpers.h"
#include "zstd.h"
#include "zdict.h"
static void set(ZSTD_CCtx *cctx, ZSTD_cParameter param, int value)
{
@@ -71,7 +75,6 @@ void FUZZ_setRandomParameters(ZSTD_CCtx *cctx, size_t srcSize, uint32_t *state)
setRand(cctx, ZSTD_c_contentSizeFlag, 0, 1, state);
setRand(cctx, ZSTD_c_checksumFlag, 0, 1, state);
setRand(cctx, ZSTD_c_dictIDFlag, 0, 1, state);
setRand(cctx, ZSTD_c_forceAttachDict, 0, 2, state);
/* Select long distance matchig parameters */
setRand(cctx, ZSTD_c_enableLongDistanceMatching, 0, 1, state);
setRand(cctx, ZSTD_c_ldmHashLog, ZSTD_HASHLOG_MIN, 16, state);
@@ -81,4 +84,54 @@ void FUZZ_setRandomParameters(ZSTD_CCtx *cctx, size_t srcSize, uint32_t *state)
state);
setRand(cctx, ZSTD_c_ldmHashRateLog, ZSTD_LDM_HASHRATELOG_MIN,
ZSTD_LDM_HASHRATELOG_MAX, state);
/* Set misc parameters */
setRand(cctx, ZSTD_c_nbWorkers, 0, 2, state);
setRand(cctx, ZSTD_c_rsyncable, 0, 1, state);
setRand(cctx, ZSTD_c_forceMaxWindow, 0, 1, state);
setRand(cctx, ZSTD_c_literalCompressionMode, 0, 2, state);
setRand(cctx, ZSTD_c_forceAttachDict, 0, 2, state);
}
FUZZ_dict_t FUZZ_train(void const* src, size_t srcSize, uint32_t *state)
{
size_t const dictSize = MAX(srcSize / 8, 1024);
size_t const totalSampleSize = dictSize * 11;
FUZZ_dict_t dict = { malloc(dictSize), dictSize };
char* const samples = (char*)malloc(totalSampleSize);
unsigned nbSamples = 100;
size_t* const samplesSizes = (size_t*)malloc(sizeof(size_t) * nbSamples);
size_t pos = 0;
size_t sample = 0;
ZDICT_fastCover_params_t params;
FUZZ_ASSERT(dict.buff && samples && samplesSizes);
for (sample = 0; sample < nbSamples; ++sample) {
size_t const remaining = totalSampleSize - pos;
size_t const offset = FUZZ_rand32(state, 0, MAX(srcSize, 1) - 1);
size_t const limit = MIN(srcSize - offset, remaining);
size_t const toCopy = MIN(limit, remaining / (nbSamples - sample));
memcpy(samples + pos, src + offset, toCopy);
pos += toCopy;
samplesSizes[sample] = toCopy;
}
memset(samples + pos, 0, totalSampleSize - pos);
memset(&params, 0, sizeof(params));
params.accel = 5;
params.k = 40;
params.d = 8;
params.f = 14;
params.zParams.compressionLevel = 1;
dict.size = ZDICT_trainFromBuffer_fastCover(dict.buff, dictSize,
samples, samplesSizes, nbSamples, params);
if (ZSTD_isError(dict.size)) {
free(dict.buff);
memset(&dict, 0, sizeof(dict));
}
free(samplesSizes);
free(samples);
return dict;
}
+13
View File
@@ -14,6 +14,8 @@
#ifndef ZSTD_HELPERS_H
#define ZSTD_HELPERS_H
#define ZSTD_STATIC_LINKING_ONLY
#include "zstd.h"
#include <stdint.h>
@@ -27,6 +29,17 @@ ZSTD_compressionParameters FUZZ_randomCParams(size_t srcSize, uint32_t *state);
ZSTD_frameParameters FUZZ_randomFParams(uint32_t *state);
ZSTD_parameters FUZZ_randomParams(size_t srcSize, uint32_t *state);
typedef struct {
void* buff;
size_t size;
} FUZZ_dict_t;
/* Quickly train a dictionary from a source for fuzzing.
* NOTE: Don't use this to train production dictionaries, it is only optimized
* for speed, and doesn't care about dictionary quality.
*/
FUZZ_dict_t FUZZ_train(void const* src, size_t srcSize, uint32_t *state);
#ifdef __cplusplus
}
+249 -4
View File
@@ -124,12 +124,14 @@ static U32 FUZ_highbit32(U32 v32)
#define CHECK(fn) { CHECK_V(err, fn); }
#define CHECKPLUS(var, fn, more) { CHECK_V(var, fn); more; }
#define CHECK_EQ(lhs, rhs) { \
if ((lhs) != (rhs)) { \
DISPLAY("Error L%u => %s != %s ", __LINE__, #lhs, #rhs); \
#define CHECK_OP(op, lhs, rhs) { \
if (!((lhs) op (rhs))) { \
DISPLAY("Error L%u => FAILED %s %s %s ", __LINE__, #lhs, #op, #rhs); \
goto _output_error; \
} \
}
#define CHECK_EQ(lhs, rhs) CHECK_OP(==, lhs, rhs)
#define CHECK_LT(lhs, rhs) CHECK_OP(<, lhs, rhs)
/*=============================================
@@ -374,6 +376,20 @@ static int basicUnitTests(U32 seed, double compressibility)
}
DISPLAYLEVEL(3, "OK \n");
DISPLAYLEVEL(3, "test%3i : tight ZSTD_decompressBound test : ", testNb++);
{
unsigned long long bound = ZSTD_decompressBound(compressedBuffer, cSize);
if (bound != CNBuffSize) goto _output_error;
}
DISPLAYLEVEL(3, "OK \n");
DISPLAYLEVEL(3, "test%3i : ZSTD_decompressBound test with invalid srcSize : ", testNb++);
{
unsigned long long bound = ZSTD_decompressBound(compressedBuffer, cSize - 1);
if (bound != ZSTD_CONTENTSIZE_ERROR) goto _output_error;
}
DISPLAYLEVEL(3, "OK \n");
DISPLAYLEVEL(3, "test%3i : decompress %u bytes : ", testNb++, (unsigned)CNBuffSize);
{ size_t const r = ZSTD_decompress(decodedBuffer, CNBuffSize, compressedBuffer, cSize);
if (r != CNBuffSize) goto _output_error; }
@@ -429,6 +445,27 @@ static int basicUnitTests(U32 seed, double compressibility)
if (ZSTD_getErrorCode(r) != ZSTD_error_srcSize_wrong) goto _output_error; }
DISPLAYLEVEL(3, "OK \n");
DISPLAYLEVEL(3, "test%3i : ZSTD_decompressBound test with content size missing : ", testNb++);
{ /* create compressed buffer with content size missing */
ZSTD_CCtx* cctx = ZSTD_createCCtx();
CHECK_Z( ZSTD_CCtx_setParameter(cctx, ZSTD_c_contentSizeFlag, 0) );
CHECKPLUS(r, ZSTD_compress2(cctx,
compressedBuffer, compressedBufferSize,
CNBuffer, CNBuffSize),
cSize=r );
ZSTD_freeCCtx(cctx);
}
{ /* ensure frame content size is missing */
ZSTD_frameHeader zfh;
size_t const ret = ZSTD_getFrameHeader(&zfh, compressedBuffer, compressedBufferSize);
if (ret != 0 || zfh.frameContentSize != ZSTD_CONTENTSIZE_UNKNOWN) goto _output_error;
}
{ /* ensure CNBuffSize <= decompressBound */
unsigned long long const bound = ZSTD_decompressBound(compressedBuffer, compressedBufferSize);
if (CNBuffSize > bound) goto _output_error;
}
DISPLAYLEVEL(3, "OK \n");
DISPLAYLEVEL(3, "test%3d : check CCtx size after compressing empty input : ", testNb++);
{ ZSTD_CCtx* const cctx = ZSTD_createCCtx();
size_t const r = ZSTD_compressCCtx(cctx, compressedBuffer, compressedBufferSize, NULL, 0, 19);
@@ -828,6 +865,59 @@ static int basicUnitTests(U32 seed, double compressibility)
ZSTDMT_freeCCtx(mtctx);
}
DISPLAYLEVEL(3, "test%3i : compress -T2 with/without literals compression : ", testNb++)
{ ZSTD_CCtx* cctx = ZSTD_createCCtx();
size_t cSize1, cSize2;
CHECK( ZSTD_CCtx_setParameter(cctx, ZSTD_c_compressionLevel, 1) );
CHECK( ZSTD_CCtx_setParameter(cctx, ZSTD_c_nbWorkers, 2) );
cSize1 = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, CNBuffSize);
CHECK(cSize1);
CHECK( ZSTD_CCtx_setParameter(cctx, ZSTD_c_literalCompressionMode, ZSTD_lcm_uncompressed) );
cSize2 = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, CNBuffSize);
CHECK(cSize2);
CHECK_LT(cSize1, cSize2);
ZSTD_freeCCtx(cctx);
}
DISPLAYLEVEL(3, "OK \n");
DISPLAYLEVEL(3, "test%3i : Multithreaded ZSTD_compress2() with rsyncable : ", testNb++)
{ ZSTD_CCtx* cctx = ZSTD_createCCtx();
/* Set rsyncable and don't give the ZSTD_compressBound(CNBuffSize) so
* ZSTDMT is forced to not take the shortcut.
*/
CHECK( ZSTD_CCtx_setParameter(cctx, ZSTD_c_compressionLevel, 1) );
CHECK( ZSTD_CCtx_setParameter(cctx, ZSTD_c_nbWorkers, 1) );
CHECK( ZSTD_CCtx_setParameter(cctx, ZSTD_c_rsyncable, 1) );
CHECK( ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize - 1, CNBuffer, CNBuffSize) );
ZSTD_freeCCtx(cctx);
}
DISPLAYLEVEL(3, "OK \n");
DISPLAYLEVEL(3, "test%3i : setting multithreaded parameters : ", testNb++)
{ ZSTD_CCtx_params* params = ZSTD_createCCtxParams();
int value;
/* Check that the overlap log and job size are unset. */
CHECK( ZSTD_CCtxParams_getParameter(params, ZSTD_c_overlapLog, &value) );
CHECK_EQ(value, 0);
CHECK( ZSTD_CCtxParams_getParameter(params, ZSTD_c_jobSize, &value) );
CHECK_EQ(value, 0);
/* Set and check the overlap log and job size. */
CHECK( ZSTD_CCtxParams_setParameter(params, ZSTD_c_overlapLog, 5) );
CHECK( ZSTD_CCtxParams_setParameter(params, ZSTD_c_jobSize, 2 MB) );
CHECK( ZSTD_CCtxParams_getParameter(params, ZSTD_c_overlapLog, &value) );
CHECK_EQ(value, 5);
CHECK( ZSTD_CCtxParams_getParameter(params, ZSTD_c_jobSize, &value) );
CHECK_EQ(value, 2 MB);
/* Set the number of worksers and check the overlap log and job size. */
CHECK( ZSTD_CCtxParams_setParameter(params, ZSTD_c_nbWorkers, 2) );
CHECK( ZSTD_CCtxParams_getParameter(params, ZSTD_c_overlapLog, &value) );
CHECK_EQ(value, 5);
CHECK( ZSTD_CCtxParams_getParameter(params, ZSTD_c_jobSize, &value) );
CHECK_EQ(value, 2 MB);
ZSTD_freeCCtxParams(params);
}
DISPLAYLEVEL(3, "OK \n");
/* Simple API multiframe test */
DISPLAYLEVEL(3, "test%3i : compress multiple frames : ", testNb++);
@@ -859,6 +949,11 @@ static int basicUnitTests(U32 seed, double compressibility)
if (r != CNBuffSize / 2) goto _output_error; }
DISPLAYLEVEL(3, "OK \n");
DISPLAYLEVEL(3, "test%3i : get tight decompressed bound of multiple frames : ", testNb++);
{ unsigned long long const bound = ZSTD_decompressBound(compressedBuffer, cSize);
if (bound != CNBuffSize / 2) goto _output_error; }
DISPLAYLEVEL(3, "OK \n");
DISPLAYLEVEL(3, "test%3i : decompress multiple frames : ", testNb++);
{ CHECK_V(r, ZSTD_decompress(decodedBuffer, CNBuffSize, compressedBuffer, cSize));
if (r != CNBuffSize / 2) goto _output_error; }
@@ -1203,9 +1298,13 @@ static int basicUnitTests(U32 seed, double compressibility)
{
size_t ret;
MEM_writeLE32((char*)dictBuffer+2, ZSTD_MAGIC_DICTIONARY);
/* Either operation is allowed to fail, but one must fail. */
ret = ZSTD_CCtx_loadDictionary_advanced(
cctx, (const char*)dictBuffer+2, dictSize-2, ZSTD_dlm_byRef, ZSTD_dct_auto);
if (!ZSTD_isError(ret)) goto _output_error;
if (!ZSTD_isError(ret)) {
ret = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100));
if (!ZSTD_isError(ret)) goto _output_error;
}
}
DISPLAYLEVEL(3, "OK \n");
@@ -1216,6 +1315,152 @@ static int basicUnitTests(U32 seed, double compressibility)
ret = ZSTD_CCtx_loadDictionary_advanced(
cctx, (const char*)dictBuffer+2, dictSize-2, ZSTD_dlm_byRef, ZSTD_dct_rawContent);
if (ZSTD_isError(ret)) goto _output_error;
ret = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100));
if (ZSTD_isError(ret)) goto _output_error;
}
DISPLAYLEVEL(3, "OK \n");
DISPLAYLEVEL(3, "test%3i : ZSTD_CCtx_refCDict() then set parameters : ", testNb++);
{ ZSTD_CDict* const cdict = ZSTD_createCDict(CNBuffer, dictSize, 1);
CHECK_Z( ZSTD_CCtx_setParameter(cctx, ZSTD_c_compressionLevel, 1) );
CHECK_Z( ZSTD_CCtx_setParameter(cctx, ZSTD_c_hashLog, 12 ));
CHECK_Z( ZSTD_CCtx_refCDict(cctx, cdict) );
CHECK_Z( ZSTD_CCtx_setParameter(cctx, ZSTD_c_compressionLevel, 1) );
CHECK_Z( ZSTD_CCtx_setParameter(cctx, ZSTD_c_hashLog, 12 ));
ZSTD_freeCDict(cdict);
}
DISPLAYLEVEL(3, "OK \n");
DISPLAYLEVEL(3, "test%3i : Loading dictionary before setting parameters is the same as loading after : ", testNb++);
{
size_t size1, size2;
ZSTD_CCtx_reset(cctx, ZSTD_reset_session_and_parameters);
CHECK_Z( ZSTD_CCtx_setParameter(cctx, ZSTD_c_compressionLevel, 7) );
CHECK_Z( ZSTD_CCtx_loadDictionary(cctx, CNBuffer, MIN(CNBuffSize, 10 KB)) );
size1 = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100 KB));
if (ZSTD_isError(size1)) goto _output_error;
ZSTD_CCtx_reset(cctx, ZSTD_reset_session_and_parameters);
CHECK_Z( ZSTD_CCtx_loadDictionary(cctx, CNBuffer, MIN(CNBuffSize, 10 KB)) );
CHECK_Z( ZSTD_CCtx_setParameter(cctx, ZSTD_c_compressionLevel, 7) );
size2 = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100 KB));
if (ZSTD_isError(size2)) goto _output_error;
if (size1 != size2) goto _output_error;
}
DISPLAYLEVEL(3, "OK \n");
DISPLAYLEVEL(3, "test%3i : Loading a dictionary clears the prefix : ", testNb++);
{
CHECK_Z( ZSTD_CCtx_refPrefix(cctx, (const char*)dictBuffer, dictSize) );
CHECK_Z( ZSTD_CCtx_loadDictionary(cctx, (const char*)dictBuffer, dictSize) );
CHECK_Z( ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100)) );
}
DISPLAYLEVEL(3, "OK \n");
DISPLAYLEVEL(3, "test%3i : Loading a dictionary clears the cdict : ", testNb++);
{
ZSTD_CDict* const cdict = ZSTD_createCDict(dictBuffer, dictSize, 1);
CHECK_Z( ZSTD_CCtx_refCDict(cctx, cdict) );
CHECK_Z( ZSTD_CCtx_loadDictionary(cctx, (const char*)dictBuffer, dictSize) );
CHECK_Z( ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100)) );
ZSTD_freeCDict(cdict);
}
DISPLAYLEVEL(3, "OK \n");
DISPLAYLEVEL(3, "test%3i : Loading a cdict clears the prefix : ", testNb++);
{
ZSTD_CDict* const cdict = ZSTD_createCDict(dictBuffer, dictSize, 1);
CHECK_Z( ZSTD_CCtx_refPrefix(cctx, (const char*)dictBuffer, dictSize) );
CHECK_Z( ZSTD_CCtx_refCDict(cctx, cdict) );
CHECK_Z( ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100)) );
ZSTD_freeCDict(cdict);
}
DISPLAYLEVEL(3, "OK \n");
DISPLAYLEVEL(3, "test%3i : Loading a cdict clears the dictionary : ", testNb++);
{
ZSTD_CDict* const cdict = ZSTD_createCDict(dictBuffer, dictSize, 1);
CHECK_Z( ZSTD_CCtx_loadDictionary(cctx, (const char*)dictBuffer, dictSize) );
CHECK_Z( ZSTD_CCtx_refCDict(cctx, cdict) );
CHECK_Z( ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100)) );
ZSTD_freeCDict(cdict);
}
DISPLAYLEVEL(3, "OK \n");
DISPLAYLEVEL(3, "test%3i : Loading a prefix clears the dictionary : ", testNb++);
{
CHECK_Z( ZSTD_CCtx_loadDictionary(cctx, (const char*)dictBuffer, dictSize) );
CHECK_Z( ZSTD_CCtx_refPrefix(cctx, (const char*)dictBuffer, dictSize) );
CHECK_Z( ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100)) );
}
DISPLAYLEVEL(3, "OK \n");
DISPLAYLEVEL(3, "test%3i : Loading a prefix clears the cdict : ", testNb++);
{
ZSTD_CDict* const cdict = ZSTD_createCDict(dictBuffer, dictSize, 1);
CHECK_Z( ZSTD_CCtx_refCDict(cctx, cdict) );
CHECK_Z( ZSTD_CCtx_refPrefix(cctx, (const char*)dictBuffer, dictSize) );
CHECK_Z( ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100)) );
ZSTD_freeCDict(cdict);
}
DISPLAYLEVEL(3, "OK \n");
DISPLAYLEVEL(3, "test%3i : Loaded dictionary persists across reset session : ", testNb++);
{
size_t size1, size2;
ZSTD_CCtx_reset(cctx, ZSTD_reset_session_and_parameters);
CHECK_Z( ZSTD_CCtx_loadDictionary(cctx, CNBuffer, MIN(CNBuffSize, 10 KB)) );
size1 = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100 KB));
if (ZSTD_isError(size1)) goto _output_error;
ZSTD_CCtx_reset(cctx, ZSTD_reset_session_only);
size2 = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100 KB));
if (ZSTD_isError(size2)) goto _output_error;
if (size1 != size2) goto _output_error;
}
DISPLAYLEVEL(3, "OK \n");
DISPLAYLEVEL(3, "test%3i : Loaded dictionary is cleared after resetting parameters : ", testNb++);
{
size_t size1, size2;
ZSTD_CCtx_reset(cctx, ZSTD_reset_session_and_parameters);
CHECK_Z( ZSTD_CCtx_loadDictionary(cctx, CNBuffer, MIN(CNBuffSize, 10 KB)) );
size1 = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100 KB));
if (ZSTD_isError(size1)) goto _output_error;
ZSTD_CCtx_reset(cctx, ZSTD_reset_session_and_parameters);
size2 = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100 KB));
if (ZSTD_isError(size2)) goto _output_error;
if (size1 == size2) goto _output_error;
}
DISPLAYLEVEL(3, "OK \n");
ZSTD_CCtx_reset(cctx, ZSTD_reset_session_and_parameters);
CHECK_Z( ZSTD_CCtx_loadDictionary(cctx, dictBuffer, dictSize) );
cSize = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100 KB));
CHECK_Z(cSize);
DISPLAYLEVEL(3, "test%3i : ZSTD_decompressDCtx() with dictionary : ", testNb++);
{
ZSTD_DCtx* dctx = ZSTD_createDCtx();
size_t ret;
/* We should fail to decompress without a dictionary. */
ZSTD_DCtx_reset(dctx, ZSTD_reset_session_and_parameters);
ret = ZSTD_decompressDCtx(dctx, decodedBuffer, CNBuffSize, compressedBuffer, cSize);
if (!ZSTD_isError(ret)) goto _output_error;
/* We should succeed to decompress with the dictionary. */
ZSTD_DCtx_reset(dctx, ZSTD_reset_session_and_parameters);
CHECK_Z( ZSTD_DCtx_loadDictionary(dctx, dictBuffer, dictSize) );
CHECK_Z( ZSTD_decompressDCtx(dctx, decodedBuffer, CNBuffSize, compressedBuffer, cSize) );
/* The dictionary should presist across calls. */
CHECK_Z( ZSTD_decompressDCtx(dctx, decodedBuffer, CNBuffSize, compressedBuffer, cSize) );
/* When we reset the context the dictionary is cleared. */
ZSTD_DCtx_reset(dctx, ZSTD_reset_session_and_parameters);
ret = ZSTD_decompressDCtx(dctx, decodedBuffer, CNBuffSize, compressedBuffer, cSize);
if (!ZSTD_isError(ret)) goto _output_error;
ZSTD_freeDCtx(dctx);
}
DISPLAYLEVEL(3, "OK \n");
+34 -4
View File
@@ -16,10 +16,11 @@
/*===========================================
* Dependencies
*==========================================*/
#include <stddef.h> /* size_t */
#include <stdlib.h> /* malloc, free */
#include <stdio.h> /* fprintf */
#include <string.h> /* strlen */
#include <stddef.h> /* size_t */
#include <stdlib.h> /* malloc, free */
#include <stdio.h> /* fprintf */
#include <string.h> /* strlen */
#define ZSTD_STATIC_LINKING_ONLY /* ZSTD_decompressBound */
#include "zstd.h"
#include "zstd_errors.h"
@@ -130,12 +131,41 @@ static int testStreamingAPI(void)
return error_code;
}
static int testFrameDecoding(void)
{
if (strlen(EXPECTED) > ZSTD_decompressBound(COMPRESSED, COMPRESSED_SIZE)) {
DISPLAY("ERROR: ZSTD_decompressBound: decompressed bound too small\n");
return 1;
}
{ const char* ip = COMPRESSED;
size_t remainingSize = COMPRESSED_SIZE;
while (1) {
size_t frameSize = ZSTD_findFrameCompressedSize(ip, remainingSize);
if (ZSTD_isError(frameSize)) {
DISPLAY("ERROR: ZSTD_findFrameCompressedSize: %s\n", ZSTD_getErrorName(frameSize));
return 1;
}
if (frameSize > remainingSize) {
DISPLAY("ERROR: ZSTD_findFrameCompressedSize: expected frameSize to align with src buffer");
return 1;
}
ip += frameSize;
remainingSize -= frameSize;
if (remainingSize == 0) break;
}
}
DISPLAY("Frame Decoding OK\n");
return 0;
}
int main(void)
{
{ int const ret = testSimpleAPI();
if (ret) return ret; }
{ int const ret = testStreamingAPI();
if (ret) return ret; }
{ int const ret = testFrameDecoding();
if (ret) return ret; }
DISPLAY("OK\n");
return 0;
+25 -4
View File
@@ -200,6 +200,15 @@ $ZSTD tmp -fo tmp && die "zstd compression overwrote the input file"
$ZSTD tmp.zst -dfo tmp.zst && die "zstd decompression overwrote the input file"
$ECHO "test: detect that input file does not exist"
$ZSTD nothere && die "zstd hasn't detected that input file does not exist"
$ECHO "test: --[no-]compress-literals"
$ZSTD tmp -c --no-compress-literals -1 | $ZSTD -t
$ZSTD tmp -c --no-compress-literals --fast=1 | $ZSTD -t
$ZSTD tmp -c --no-compress-literals -19 | $ZSTD -t
$ZSTD tmp -c --compress-literals -1 | $ZSTD -t
$ZSTD tmp -c --compress-literals --fast=1 | $ZSTD -t
$ZSTD tmp -c --compress-literals -19 | $ZSTD -t
$ZSTD -b --fast=1 -i1e1 tmp --compress-literals
$ZSTD -b --fast=1 -i1e1 tmp --no-compress-literals
$ECHO "test : file removal"
$ZSTD -f --rm tmp
@@ -314,18 +323,28 @@ $ECHO foo | $ZSTD > /dev/full && die "write error not detected!"
$ECHO "$ECHO foo | $ZSTD | $ZSTD -d > /dev/full"
$ECHO foo | $ZSTD | $ZSTD -d > /dev/full && die "write error not detected!"
fi
if [ "$isWindows" = false ] && [ "$UNAME" != 'SunOS' ] ; then
$ECHO "\n===> symbolic link test "
rm -f hello.tmp world.tmp hello.tmp.zst world.tmp.zst
rm -f hello.tmp world.tmp world2.tmp hello.tmp.zst world.tmp.zst
$ECHO "hello world" > hello.tmp
ln -s hello.tmp world.tmp
$ZSTD world.tmp hello.tmp
ln -s hello.tmp world2.tmp
$ZSTD world.tmp hello.tmp || true
test -f hello.tmp.zst # regular file should have been compressed!
test ! -f world.tmp.zst # symbolic link should not have been compressed!
$ZSTD world.tmp || true
test ! -f world.tmp.zst # symbolic link should not have been compressed!
$ZSTD world.tmp world2.tmp || true
test ! -f world.tmp.zst # symbolic link should not have been compressed!
test ! -f world2.tmp.zst # symbolic link should not have been compressed!
$ZSTD world.tmp hello.tmp -f
test -f world.tmp.zst # symbolic link should have been compressed with --force
rm -f hello.tmp world.tmp hello.tmp.zst world.tmp.zst
rm -f hello.tmp world.tmp world2.tmp hello.tmp.zst world.tmp.zst
fi
@@ -391,6 +410,8 @@ $ECHO "- Create first dictionary "
TESTFILE=../programs/zstdcli.c
$ZSTD --train *.c ../programs/*.c -o tmpDict
cp $TESTFILE tmp
$ECHO "- Test dictionary compression with tmpDict as an input file and dictionary"
$ZSTD -f tmpDict -D tmpDict && die "compression error not detected!"
$ECHO "- Dictionary compression roundtrip"
$ZSTD -f tmp -D tmpDict
$ZSTD -d tmp.zst -D tmpDict -fo result
@@ -815,7 +836,7 @@ FULL_COMPRESSED_FILE=${TEST_DATA_FILE}.zst
TRUNCATED_COMPRESSED_FILE=truncated-input.txt.zst
./datagen -g50000 > $TEST_DATA_FILE
$ZSTD -f $TEST_DATA_FILE -o $FULL_COMPRESSED_FILE
head -c 100 $FULL_COMPRESSED_FILE > $TRUNCATED_COMPRESSED_FILE
dd bs=1 count=100 if=$FULL_COMPRESSED_FILE of=$TRUNCATED_COMPRESSED_FILE status=none
$ZSTD --list $TRUNCATED_COMPRESSED_FILE && die "-l must fail on truncated file"
rm $TEST_DATA_FILE
+48
View File
@@ -90,6 +90,17 @@ static config_t mt_ldm = {
.param_values = PARAM_VALUES(mt_ldm_param_values),
};
static param_value_t mt_advanced_param_values[] = {
{.param = ZSTD_c_nbWorkers, .value = 2},
{.param = ZSTD_c_literalCompressionMode, .value = ZSTD_lcm_uncompressed},
};
static config_t mt_advanced = {
.name = "multithreaded with advanced params",
.cli_args = "-T2 --no-compress-literals",
.param_values = PARAM_VALUES(mt_advanced_param_values),
};
static param_value_t const small_wlog_param_values[] = {
{.param = ZSTD_c_windowLog, .value = 10},
};
@@ -122,6 +133,39 @@ static config_t small_clog = {
.param_values = PARAM_VALUES(small_clog_param_values),
};
static param_value_t const uncompressed_literals_param_values[] = {
{.param = ZSTD_c_compressionLevel, .value = 3},
{.param = ZSTD_c_literalCompressionMode, .value = ZSTD_lcm_uncompressed},
};
static config_t uncompressed_literals = {
.name = "uncompressed literals",
.cli_args = "-3 --no-compress-literals",
.param_values = PARAM_VALUES(uncompressed_literals_param_values),
};
static param_value_t const uncompressed_literals_opt_param_values[] = {
{.param = ZSTD_c_compressionLevel, .value = 19},
{.param = ZSTD_c_literalCompressionMode, .value = ZSTD_lcm_uncompressed},
};
static config_t uncompressed_literals_opt = {
.name = "uncompressed literals optimal",
.cli_args = "-19 --no-compress-literals",
.param_values = PARAM_VALUES(uncompressed_literals_opt_param_values),
};
static param_value_t const huffman_literals_param_values[] = {
{.param = ZSTD_c_compressionLevel, .value = -1},
{.param = ZSTD_c_literalCompressionMode, .value = ZSTD_lcm_huffman},
};
static config_t huffman_literals = {
.name = "huffman literals",
.cli_args = "--fast=1 --compress-literals",
.param_values = PARAM_VALUES(huffman_literals_param_values),
};
static param_value_t const explicit_params_param_values[] = {
{.param = ZSTD_c_checksumFlag, .value = 1},
{.param = ZSTD_c_contentSizeFlag, .value = 0},
@@ -155,6 +199,10 @@ static config_t const* g_configs[] = {
&small_hlog,
&small_clog,
&explicit_params,
&uncompressed_literals,
&uncompressed_literals_opt,
&huffman_literals,
&mt_advanced,
NULL,
};
+163 -58
View File
@@ -175,8 +175,8 @@ static result_t compress_cctx_compress(
state->compressed.capacity,
input.data,
input.size,
state->dictionary.data,
state->dictionary.size,
config->use_dictionary ? state->dictionary.data : NULL,
config->use_dictionary ? state->dictionary.size : 0,
params);
else if (config->use_dictionary)
state->compressed.size = ZSTD_compress_usingDict(
@@ -432,77 +432,158 @@ out:
return result;
}
static result_t old_streaming_compress(
method_state_t* base,
config_t const* config) {
buffer_state_t* state = container_of(base, buffer_state_t, base);
if (buffer_state_bad(state, config))
return result_error(result_error_system_error);
int const level = config_get_level(config);
if (level == CONFIG_NO_LEVEL)
return result_error(result_error_skip);
ZSTD_CStream* zcs = ZSTD_createCStream();
result_t result;
if (zcs == NULL) {
result = result_error(result_error_compression_error);
goto out;
}
static int init_cstream(
buffer_state_t* state,
ZSTD_CStream* zcs,
config_t const* config,
int const advanced,
ZSTD_CDict** cdict)
{
size_t zret;
if (config->use_dictionary) {
zret = ZSTD_initCStream_usingDict(
zcs, state->dictionary.data, state->dictionary.size, level);
if (advanced) {
ZSTD_parameters const params = config_get_zstd_params(config, 0, 0);
ZSTD_CDict* dict = NULL;
if (cdict) {
*cdict = ZSTD_createCDict_advanced(
state->dictionary.data,
state->dictionary.size,
ZSTD_dlm_byRef,
ZSTD_dct_auto,
params.cParams,
ZSTD_defaultCMem);
if (!*cdict) {
return 1;
}
zret = ZSTD_initCStream_usingCDict_advanced(
zcs, *cdict, params.fParams, ZSTD_CONTENTSIZE_UNKNOWN);
} else {
zret = ZSTD_initCStream_advanced(
zcs,
state->dictionary.data,
state->dictionary.size,
params,
ZSTD_CONTENTSIZE_UNKNOWN);
}
} else {
zret = ZSTD_initCStream(zcs, level);
int const level = config_get_level(config);
if (cdict) {
*cdict = ZSTD_createCDict(
state->dictionary.data,
state->dictionary.size,
level);
if (!*cdict) {
return 1;
}
zret = ZSTD_initCStream_usingCDict(zcs, *cdict);
} else if (config->use_dictionary) {
zret = ZSTD_initCStream_usingDict(
zcs, state->dictionary.data, state->dictionary.size, level);
} else {
zret = ZSTD_initCStream(zcs, level);
}
}
if (ZSTD_isError(zret)) {
result = result_error(result_error_compression_error);
goto out;
return 1;
}
return 0;
}
static result_t old_streaming_compress_internal(
method_state_t* base,
config_t const* config,
int const advanced,
int const cdict) {
buffer_state_t* state = container_of(base, buffer_state_t, base);
if (buffer_state_bad(state, config))
return result_error(result_error_system_error);
ZSTD_CStream* zcs = ZSTD_createCStream();
ZSTD_CDict* cd = NULL;
result_t result;
if (zcs == NULL) {
result = result_error(result_error_compression_error);
goto out;
}
if (init_cstream(state, zcs, config, advanced, cdict ? &cd : NULL)) {
result = result_error(result_error_compression_error);
goto out;
}
result_data_t data = {.total_size = 0};
for (size_t i = 0; i < state->inputs.size; ++i) {
data_buffer_t input = state->inputs.buffers[i];
size_t zret = ZSTD_resetCStream(
zcs,
config->no_pledged_src_size ? ZSTD_CONTENTSIZE_UNKNOWN : input.size);
if (ZSTD_isError(zret)) {
result = result_error(result_error_compression_error);
goto out;
}
result_data_t data = {.total_size = 0};
for (size_t i = 0; i < state->inputs.size; ++i) {
data_buffer_t input = state->inputs.buffers[i];
zret = ZSTD_resetCStream(
zcs,
config->no_pledged_src_size ? ZSTD_CONTENTSIZE_UNKNOWN
: input.size);
while (input.size > 0) {
ZSTD_inBuffer in = {input.data, MIN(input.size, 4096)};
input.data += in.size;
input.size -= in.size;
ZSTD_EndDirective const op =
input.size > 0 ? ZSTD_e_continue : ZSTD_e_end;
zret = 0;
while (in.pos < in.size || (op == ZSTD_e_end && zret != 0)) {
ZSTD_outBuffer out = {state->compressed.data,
MIN(state->compressed.capacity, 1024)};
if (op == ZSTD_e_continue || in.pos < in.size)
zret = ZSTD_compressStream(zcs, &out, &in);
else
zret = ZSTD_endStream(zcs, &out);
if (ZSTD_isError(zret)) {
result = result_error(result_error_compression_error);
goto out;
}
while (input.size > 0) {
ZSTD_inBuffer in = {input.data, MIN(input.size, 4096)};
input.data += in.size;
input.size -= in.size;
ZSTD_EndDirective const op =
input.size > 0 ? ZSTD_e_continue : ZSTD_e_end;
zret = 0;
while (in.pos < in.size || (op == ZSTD_e_end && zret != 0)) {
ZSTD_outBuffer out = {state->compressed.data,
MIN(state->compressed.capacity, 1024)};
if (op == ZSTD_e_continue || in.pos < in.size)
zret = ZSTD_compressStream(zcs, &out, &in);
else
zret = ZSTD_endStream(zcs, &out);
if (ZSTD_isError(zret)) {
result = result_error(result_error_compression_error);
goto out;
}
data.total_size += out.pos;
}
result = result_error(result_error_compression_error);
goto out;
}
data.total_size += out.pos;
}
}
}
result = result_data(data);
result = result_data(data);
out:
ZSTD_freeCStream(zcs);
ZSTD_freeCDict(cd);
return result;
}
static result_t old_streaming_compress(
method_state_t* base,
config_t const* config)
{
return old_streaming_compress_internal(
base, config, /* advanced */ 0, /* cdict */ 0);
}
static result_t old_streaming_compress_advanced(
method_state_t* base,
config_t const* config)
{
return old_streaming_compress_internal(
base, config, /* advanced */ 1, /* cdict */ 0);
}
static result_t old_streaming_compress_cdict(
method_state_t* base,
config_t const* config)
{
return old_streaming_compress_internal(
base, config, /* advanced */ 0, /* cdict */ 1);
}
static result_t old_streaming_compress_cdict_advanced(
method_state_t* base,
config_t const* config)
{
return old_streaming_compress_internal(
base, config, /* advanced */ 1, /* cdict */ 1);
}
method_t const simple = {
.name = "compress simple",
.create = buffer_state_create,
@@ -545,6 +626,27 @@ method_t const old_streaming = {
.destroy = buffer_state_destroy,
};
method_t const old_streaming_advanced = {
.name = "old streaming advanced",
.create = buffer_state_create,
.compress = old_streaming_compress,
.destroy = buffer_state_destroy,
};
method_t const old_streaming_cdict = {
.name = "old streaming cdcit",
.create = buffer_state_create,
.compress = old_streaming_compress,
.destroy = buffer_state_destroy,
};
method_t const old_streaming_advanced_cdict = {
.name = "old streaming advanced cdict",
.create = buffer_state_create,
.compress = old_streaming_compress,
.destroy = buffer_state_destroy,
};
method_t const cli = {
.name = "zstdcli",
.create = method_state_create,
@@ -560,6 +662,9 @@ static method_t const* g_methods[] = {
&advanced_one_pass_small_out,
&advanced_streaming,
&old_streaming,
&old_streaming_advanced,
&old_streaming_cdict,
&old_streaming_advanced_cdict,
NULL,
};
+816 -448
View File
@@ -1,448 +1,816 @@
Data, Config, Method, Total compressed size
silesia.tar, level -5, compress simple, 7160438
silesia.tar, level -3, compress simple, 6789024
silesia.tar, level -1, compress simple, 6195462
silesia.tar, level 0, compress simple, 4875008
silesia.tar, level 1, compress simple, 5339697
silesia.tar, level 3, compress simple, 4875008
silesia.tar, level 4, compress simple, 4813507
silesia.tar, level 5, compress simple, 4722235
silesia.tar, level 6, compress simple, 4672194
silesia.tar, level 7, compress simple, 4606658
silesia.tar, level 9, compress simple, 4554098
silesia.tar, level 13, compress simple, 4491702
silesia.tar, level 16, compress simple, 4381277
silesia.tar, level 19, compress simple, 4281514
silesia, level -5, compress cctx, 7152294
silesia, level -3, compress cctx, 6789969
silesia, level -1, compress cctx, 6191548
silesia, level 0, compress cctx, 4862377
silesia, level 1, compress cctx, 5318036
silesia, level 3, compress cctx, 4862377
silesia, level 4, compress cctx, 4800629
silesia, level 5, compress cctx, 4710178
silesia, level 6, compress cctx, 4659996
silesia, level 7, compress cctx, 4596234
silesia, level 9, compress cctx, 4543862
silesia, level 13, compress cctx, 4482073
silesia, level 16, compress cctx, 4377391
silesia, level 19, compress cctx, 4293262
silesia, long distance mode, compress cctx, 4862377
silesia, multithreaded, compress cctx, 4862377
silesia, multithreaded long distance mode, compress cctx, 4862377
silesia, small window log, compress cctx, 7115734
silesia, small hash log, compress cctx, 6554898
silesia, small chain log, compress cctx, 4931093
silesia, explicit params, compress cctx, 4813352
github, level -5, compress cctx, 232744
github, level -5 with dict, compress cctx, 47294
github, level -3, compress cctx, 220611
github, level -3 with dict, compress cctx, 48047
github, level -1, compress cctx, 176575
github, level -1 with dict, compress cctx, 43527
github, level 0, compress cctx, 136397
github, level 0 with dict, compress cctx, 41536
github, level 1, compress cctx, 143457
github, level 1 with dict, compress cctx, 42157
github, level 3, compress cctx, 136397
github, level 3 with dict, compress cctx, 41536
github, level 4, compress cctx, 136144
github, level 4 with dict, compress cctx, 41721
github, level 5, compress cctx, 135106
github, level 5 with dict, compress cctx, 38934
github, level 6, compress cctx, 135108
github, level 6 with dict, compress cctx, 38628
github, level 7, compress cctx, 135108
github, level 7 with dict, compress cctx, 38741
github, level 9, compress cctx, 135108
github, level 9 with dict, compress cctx, 39335
github, level 13, compress cctx, 133717
github, level 13 with dict, compress cctx, 39923
github, level 16, compress cctx, 133717
github, level 16 with dict, compress cctx, 37568
github, level 19, compress cctx, 133717
github, level 19 with dict, compress cctx, 37567
github, long distance mode, compress cctx, decompression error
github, multithreaded, compress cctx, decompression error
github, multithreaded long distance mode, compress cctx, decompression error
github, small window log, compress cctx, decompression error
github, small hash log, compress cctx, decompression error
github, small chain log, compress cctx, decompression error
github, explicit params, compress cctx, decompression error
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, 4710226
silesia, level 6, zstdcli, 4660044
silesia, level 7, zstdcli, 4596282
silesia, level 9, zstdcli, 4543910
silesia, level 13, zstdcli, 4482121
silesia, level 16, zstdcli, 4377439
silesia, level 19, zstdcli, 4293310
silesia, long distance mode, zstdcli, 4853437
silesia, multithreaded, zstdcli, 4862425
silesia, multithreaded long distance mode, zstdcli, 4853437
silesia, small window log, zstdcli, 7126434
silesia, small hash log, zstdcli, 6554946
silesia, small chain log, zstdcli, 4931141
silesia, explicit params, zstdcli, 4815380
silesia.tar, level -5, zstdcli, 7161160
silesia.tar, level -3, zstdcli, 6789865
silesia.tar, level -1, zstdcli, 6196433
silesia.tar, level 0, zstdcli, 4875136
silesia.tar, level 1, zstdcli, 5340573
silesia.tar, level 3, zstdcli, 4875136
silesia.tar, level 4, zstdcli, 4814531
silesia.tar, level 5, zstdcli, 4723284
silesia.tar, level 6, zstdcli, 4673591
silesia.tar, level 7, zstdcli, 4608342
silesia.tar, level 9, zstdcli, 4554700
silesia.tar, level 13, zstdcli, 4491706
silesia.tar, level 16, zstdcli, 4381281
silesia.tar, level 19, zstdcli, 4281518
silesia.tar, no source size, zstdcli, 4875132
silesia.tar, long distance mode, zstdcli, 4866975
silesia.tar, multithreaded, zstdcli, 4875136
silesia.tar, multithreaded long distance mode, zstdcli, 4866975
silesia.tar, small window log, zstdcli, 7130434
silesia.tar, small hash log, zstdcli, 6587841
silesia.tar, small chain log, zstdcli, 4943259
silesia.tar, explicit params, zstdcli, 4839202
github, level -5, zstdcli, 234744
github, level -5 with dict, zstdcli, 48718
github, level -3, zstdcli, 222611
github, level -3 with dict, zstdcli, 47395
github, level -1, zstdcli, 178575
github, level -1 with dict, zstdcli, 45170
github, level 0, zstdcli, 138397
github, level 0 with dict, zstdcli, 43170
github, level 1, zstdcli, 145457
github, level 1 with dict, zstdcli, 43682
github, level 3, zstdcli, 138397
github, level 3 with dict, zstdcli, 43170
github, level 4, zstdcli, 138144
github, level 4 with dict, zstdcli, 43306
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, 135717
github, level 13 with dict, zstdcli, 41716
github, level 16, zstdcli, 135717
github, level 16 with dict, zstdcli, 39577
github, level 19, zstdcli, 135717
github, level 19 with dict, zstdcli, 39576
github, long distance mode, zstdcli, 138397
github, multithreaded, zstdcli, 138397
github, multithreaded long distance mode, zstdcli, 138397
github, small window log, zstdcli, 138397
github, small hash log, zstdcli, 137467
github, small chain log, zstdcli, 138314
github, explicit params, zstdcli, 136140
silesia, level -5, advanced one pass, 7152294
silesia, level -3, advanced one pass, 6789969
silesia, level -1, advanced one pass, 6191548
silesia, level 0, advanced one pass, 4862377
silesia, level 1, advanced one pass, 5318036
silesia, level 3, advanced one pass, 4862377
silesia, level 4, advanced one pass, 4800629
silesia, level 5, advanced one pass, 4710178
silesia, level 6, advanced one pass, 4659996
silesia, level 7, advanced one pass, 4596234
silesia, level 9, advanced one pass, 4543862
silesia, level 13, advanced one pass, 4482073
silesia, level 16, advanced one pass, 4377391
silesia, level 19, advanced one pass, 4293262
silesia, no source size, advanced one pass, 4862377
silesia, long distance mode, advanced one pass, 4853389
silesia, multithreaded, advanced one pass, 4862377
silesia, multithreaded long distance mode, advanced one pass, 4853389
silesia, small window log, advanced one pass, 7126386
silesia, small hash log, advanced one pass, 6554898
silesia, small chain log, advanced one pass, 4931093
silesia, explicit params, advanced one pass, 4815369
silesia.tar, level -5, advanced one pass, 7160438
silesia.tar, level -3, advanced one pass, 6789024
silesia.tar, level -1, advanced one pass, 6195462
silesia.tar, level 0, advanced one pass, 4875008
silesia.tar, level 1, advanced one pass, 5339697
silesia.tar, level 3, advanced one pass, 4875008
silesia.tar, level 4, advanced one pass, 4813507
silesia.tar, level 5, advanced one pass, 4722235
silesia.tar, level 6, advanced one pass, 4672194
silesia.tar, level 7, advanced one pass, 4606658
silesia.tar, level 9, advanced one pass, 4554098
silesia.tar, level 13, advanced one pass, 4491702
silesia.tar, level 16, advanced one pass, 4381277
silesia.tar, level 19, advanced one pass, 4281514
silesia.tar, no source size, advanced one pass, 4875008
silesia.tar, long distance mode, advanced one pass, 4861218
silesia.tar, multithreaded, advanced one pass, 4874631
silesia.tar, multithreaded long distance mode, advanced one pass, 4860683
silesia.tar, small window log, advanced one pass, 7130394
silesia.tar, small hash log, advanced one pass, 6587833
silesia.tar, small chain log, advanced one pass, 4943255
silesia.tar, explicit params, advanced one pass, 4829974
github, level -5, advanced one pass, 232744
github, level -5 with dict, advanced one pass, 46718
github, level -3, advanced one pass, 220611
github, level -3 with dict, advanced one pass, 45395
github, level -1, advanced one pass, 176575
github, level -1 with dict, advanced one pass, 43170
github, level 0, advanced one pass, 136397
github, level 0 with dict, advanced one pass, 41170
github, level 1, advanced one pass, 143457
github, level 1 with dict, advanced one pass, 41682
github, level 3, advanced one pass, 136397
github, level 3 with dict, advanced one pass, 41170
github, level 4, advanced one pass, 136144
github, level 4 with dict, advanced one pass, 41306
github, level 5, advanced one pass, 135106
github, level 5 with dict, advanced one pass, 38938
github, level 6, advanced one pass, 135108
github, level 6 with dict, advanced one pass, 38632
github, level 7, advanced one pass, 135108
github, level 7 with dict, advanced one pass, 38766
github, level 9, advanced one pass, 135108
github, level 9 with dict, advanced one pass, 39326
github, level 13, advanced one pass, 133717
github, level 13 with dict, advanced one pass, 39716
github, level 16, advanced one pass, 133717
github, level 16 with dict, advanced one pass, 37577
github, level 19, advanced one pass, 133717
github, level 19 with dict, advanced one pass, 37576
github, no source size, advanced one pass, 136397
github, long distance mode, advanced one pass, 136397
github, multithreaded, advanced one pass, 136397
github, multithreaded long distance mode, advanced one pass, 136397
github, small window log, advanced one pass, 136397
github, small hash log, advanced one pass, 135467
github, small chain log, advanced one pass, 136314
github, explicit params, advanced one pass, 137670
silesia, level -5, advanced one pass small out, 7152294
silesia, level -3, advanced one pass small out, 6789969
silesia, level -1, advanced one pass small out, 6191548
silesia, level 0, advanced one pass small out, 4862377
silesia, level 1, advanced one pass small out, 5318036
silesia, level 3, advanced one pass small out, 4862377
silesia, level 4, advanced one pass small out, 4800629
silesia, level 5, advanced one pass small out, 4710178
silesia, level 6, advanced one pass small out, 4659996
silesia, level 7, advanced one pass small out, 4596234
silesia, level 9, advanced one pass small out, 4543862
silesia, level 13, advanced one pass small out, 4482073
silesia, level 16, advanced one pass small out, 4377391
silesia, level 19, advanced one pass small out, 4293262
silesia, no source size, advanced one pass small out, 4862377
silesia, long distance mode, advanced one pass small out, 4853389
silesia, multithreaded, advanced one pass small out, 4862377
silesia, multithreaded long distance mode, advanced one pass small out, 4853389
silesia, small window log, advanced one pass small out, 7126386
silesia, small hash log, advanced one pass small out, 6554898
silesia, small chain log, advanced one pass small out, 4931093
silesia, explicit params, advanced one pass small out, 4815369
silesia.tar, level -5, advanced one pass small out, 7160438
silesia.tar, level -3, advanced one pass small out, 6789024
silesia.tar, level -1, advanced one pass small out, 6195462
silesia.tar, level 0, advanced one pass small out, 4875008
silesia.tar, level 1, advanced one pass small out, 5339697
silesia.tar, level 3, advanced one pass small out, 4875008
silesia.tar, level 4, advanced one pass small out, 4813507
silesia.tar, level 5, advanced one pass small out, 4722235
silesia.tar, level 6, advanced one pass small out, 4672194
silesia.tar, level 7, advanced one pass small out, 4606658
silesia.tar, level 9, advanced one pass small out, 4554098
silesia.tar, level 13, advanced one pass small out, 4491702
silesia.tar, level 16, advanced one pass small out, 4381277
silesia.tar, level 19, advanced one pass small out, 4281514
silesia.tar, no source size, advanced one pass small out, 4875008
silesia.tar, long distance mode, advanced one pass small out, 4861218
silesia.tar, multithreaded, advanced one pass small out, 4874631
silesia.tar, multithreaded long distance mode, advanced one pass small out, 4860683
silesia.tar, small window log, advanced one pass small out, 7130394
silesia.tar, small hash log, advanced one pass small out, 6587833
silesia.tar, small chain log, advanced one pass small out, 4943255
silesia.tar, explicit params, advanced one pass small out, 4829974
github, level -5, advanced one pass small out, 232744
github, level -5 with dict, advanced one pass small out, 46718
github, level -3, advanced one pass small out, 220611
github, level -3 with dict, advanced one pass small out, 45395
github, level -1, advanced one pass small out, 176575
github, level -1 with dict, advanced one pass small out, 43170
github, level 0, advanced one pass small out, 136397
github, level 0 with dict, advanced one pass small out, 41170
github, level 1, advanced one pass small out, 143457
github, level 1 with dict, advanced one pass small out, 41682
github, level 3, advanced one pass small out, 136397
github, level 3 with dict, advanced one pass small out, 41170
github, level 4, advanced one pass small out, 136144
github, level 4 with dict, advanced one pass small out, 41306
github, level 5, advanced one pass small out, 135106
github, level 5 with dict, advanced one pass small out, 38938
github, level 6, advanced one pass small out, 135108
github, level 6 with dict, advanced one pass small out, 38632
github, level 7, advanced one pass small out, 135108
github, level 7 with dict, advanced one pass small out, 38766
github, level 9, advanced one pass small out, 135108
github, level 9 with dict, advanced one pass small out, 39326
github, level 13, advanced one pass small out, 133717
github, level 13 with dict, advanced one pass small out, 39716
github, level 16, advanced one pass small out, 133717
github, level 16 with dict, advanced one pass small out, 37577
github, level 19, advanced one pass small out, 133717
github, level 19 with dict, advanced one pass small out, 37576
github, no source size, advanced one pass small out, 136397
github, long distance mode, advanced one pass small out, 136397
github, multithreaded, advanced one pass small out, 136397
github, multithreaded long distance mode, advanced one pass small out, 136397
github, small window log, advanced one pass small out, 136397
github, small hash log, advanced one pass small out, 135467
github, small chain log, advanced one pass small out, 136314
github, explicit params, advanced one pass small out, 137670
silesia, level -5, advanced streaming, 7152294
silesia, level -3, advanced streaming, 6789973
silesia, level -1, advanced streaming, 6191549
silesia, level 0, advanced streaming, 4862377
silesia, level 1, advanced streaming, 5318036
silesia, level 3, advanced streaming, 4862377
silesia, level 4, advanced streaming, 4800629
silesia, level 5, advanced streaming, 4710178
silesia, level 6, advanced streaming, 4659996
silesia, level 7, advanced streaming, 4596234
silesia, level 9, advanced streaming, 4543862
silesia, level 13, advanced streaming, 4482073
silesia, level 16, advanced streaming, 4377391
silesia, level 19, advanced streaming, 4293262
silesia, no source size, advanced streaming, 4862341
silesia, long distance mode, advanced streaming, 4853389
silesia, multithreaded, advanced streaming, 4862377
silesia, multithreaded long distance mode, advanced streaming, 4853389
silesia, small window log, advanced streaming, 7126389
silesia, small hash log, advanced streaming, 6554898
silesia, small chain log, advanced streaming, 4931093
silesia, explicit params, advanced streaming, 4815380
silesia.tar, level -5, advanced streaming, 7160440
silesia.tar, level -3, advanced streaming, 6789026
silesia.tar, level -1, advanced streaming, 6195465
silesia.tar, level 0, advanced streaming, 4875010
silesia.tar, level 1, advanced streaming, 5339701
silesia.tar, level 3, advanced streaming, 4875010
silesia.tar, level 4, advanced streaming, 4813507
silesia.tar, level 5, advanced streaming, 4722240
silesia.tar, level 6, advanced streaming, 4672203
silesia.tar, level 7, advanced streaming, 4606658
silesia.tar, level 9, advanced streaming, 4554105
silesia.tar, level 13, advanced streaming, 4491703
silesia.tar, level 16, advanced streaming, 4381277
silesia.tar, level 19, advanced streaming, 4281514
silesia.tar, no source size, advanced streaming, 4875006
silesia.tar, long distance mode, advanced streaming, 4861218
silesia.tar, multithreaded, advanced streaming, 4875132
silesia.tar, multithreaded long distance mode, advanced streaming, 4866971
silesia.tar, small window log, advanced streaming, 7130394
silesia.tar, small hash log, advanced streaming, 6587834
silesia.tar, small chain log, advanced streaming, 4943260
silesia.tar, explicit params, advanced streaming, 4830002
github, level -5, advanced streaming, 232744
github, level -5 with dict, advanced streaming, 46718
github, level -3, advanced streaming, 220611
github, level -3 with dict, advanced streaming, 45395
github, level -1, advanced streaming, 176575
github, level -1 with dict, advanced streaming, 43170
github, level 0, advanced streaming, 136397
github, level 0 with dict, advanced streaming, 41170
github, level 1, advanced streaming, 143457
github, level 1 with dict, advanced streaming, 41682
github, level 3, advanced streaming, 136397
github, level 3 with dict, advanced streaming, 41170
github, level 4, advanced streaming, 136144
github, level 4 with dict, advanced streaming, 41306
github, level 5, advanced streaming, 135106
github, level 5 with dict, advanced streaming, 38938
github, level 6, advanced streaming, 135108
github, level 6 with dict, advanced streaming, 38632
github, level 7, advanced streaming, 135108
github, level 7 with dict, advanced streaming, 38766
github, level 9, advanced streaming, 135108
github, level 9 with dict, advanced streaming, 39326
github, level 13, advanced streaming, 133717
github, level 13 with dict, advanced streaming, 39716
github, level 16, advanced streaming, 133717
github, level 16 with dict, advanced streaming, 37577
github, level 19, advanced streaming, 133717
github, level 19 with dict, advanced streaming, 37576
github, no source size, advanced streaming, 136397
github, long distance mode, advanced streaming, 136397
github, multithreaded, advanced streaming, 136397
github, multithreaded long distance mode, advanced streaming, 136397
github, small window log, advanced streaming, 136397
github, small hash log, advanced streaming, 135467
github, small chain log, advanced streaming, 136314
github, explicit params, advanced streaming, 137670
silesia, level -5, old streaming, 7152294
silesia, level -3, old streaming, 6789973
silesia, level -1, old streaming, 6191549
silesia, level 0, old streaming, 4862377
silesia, level 1, old streaming, 5318036
silesia, level 3, old streaming, 4862377
silesia, level 4, old streaming, 4800629
silesia, level 5, old streaming, 4710178
silesia, level 6, old streaming, 4659996
silesia, level 7, old streaming, 4596234
silesia, level 9, old streaming, 4543862
silesia, level 13, old streaming, 4482073
silesia, level 16, old streaming, 4377391
silesia, level 19, old streaming, 4293262
silesia, no source size, old streaming, 4862341
silesia.tar, level -5, old streaming, 7160440
silesia.tar, level -3, old streaming, 6789026
silesia.tar, level -1, old streaming, 6195465
silesia.tar, level 0, old streaming, 4875010
silesia.tar, level 1, old streaming, 5339701
silesia.tar, level 3, old streaming, 4875010
silesia.tar, level 4, old streaming, 4813507
silesia.tar, level 5, old streaming, 4722240
silesia.tar, level 6, old streaming, 4672203
silesia.tar, level 7, old streaming, 4606658
silesia.tar, level 9, old streaming, 4554105
silesia.tar, level 13, old streaming, 4491703
silesia.tar, level 16, old streaming, 4381277
silesia.tar, level 19, old streaming, 4281514
silesia.tar, no source size, old streaming, 4875006
github, level -5, old streaming, 232744
github, level -5 with dict, old streaming, 46718
github, level -3, old streaming, 220611
github, level -3 with dict, old streaming, 45395
github, level -1, old streaming, 176575
github, level -1 with dict, old streaming, 43170
github, level 0, old streaming, 136397
github, level 0 with dict, old streaming, 41170
github, level 1, old streaming, 143457
github, level 1 with dict, old streaming, 41682
github, level 3, old streaming, 136397
github, level 3 with dict, old streaming, 41170
github, level 4, old streaming, 136144
github, level 4 with dict, old streaming, 41306
github, level 5, old streaming, 135106
github, level 5 with dict, old streaming, 38938
github, level 6, old streaming, 135108
github, level 6 with dict, old streaming, 38632
github, level 7, old streaming, 135108
github, level 7 with dict, old streaming, 38766
github, level 9, old streaming, 135108
github, level 9 with dict, old streaming, 39326
github, level 13, old streaming, 133717
github, level 13 with dict, old streaming, 39716
github, level 16, old streaming, 133717
github, level 16 with dict, old streaming, 37577
github, level 19, old streaming, 133717
github, level 19 with dict, old streaming, 37576
github, no source size, old streaming, 141003
Data, Config, Method, Total compressed size
silesia.tar, level -5, compress simple, 6738558
silesia.tar, level -3, compress simple, 6446362
silesia.tar, level -1, compress simple, 6186038
silesia.tar, level 0, compress simple, 4875008
silesia.tar, level 1, compress simple, 5334825
silesia.tar, level 3, compress simple, 4875008
silesia.tar, level 4, compress simple, 4813507
silesia.tar, level 5, compress simple, 4722235
silesia.tar, level 6, compress simple, 4672194
silesia.tar, level 7, compress simple, 4606658
silesia.tar, level 9, compress simple, 4554098
silesia.tar, level 13, compress simple, 4491702
silesia.tar, level 16, compress simple, 4381277
silesia.tar, level 19, compress simple, 4281514
silesia.tar, uncompressed literals, compress simple, 4875008
silesia.tar, uncompressed literals optimal, compress simple, 4281514
silesia.tar, huffman literals, compress simple, 6186038
silesia, level -5, compress cctx, 6737567
silesia, level -3, compress cctx, 6444663
silesia, level -1, compress cctx, 6178442
silesia, level 0, compress cctx, 4862377
silesia, level 1, compress cctx, 5313144
silesia, level 3, compress cctx, 4862377
silesia, level 4, compress cctx, 4800629
silesia, level 5, compress cctx, 4710178
silesia, level 6, compress cctx, 4659996
silesia, level 7, compress cctx, 4596234
silesia, level 9, compress cctx, 4543862
silesia, level 13, compress cctx, 4482073
silesia, level 16, compress cctx, 4377391
silesia, level 19, compress cctx, 4293262
silesia, long distance mode, compress cctx, 4862377
silesia, multithreaded, compress cctx, 4862377
silesia, multithreaded long distance mode, compress cctx, 4862377
silesia, small window log, compress cctx, 7115734
silesia, small hash log, compress cctx, 6554898
silesia, small chain log, compress cctx, 4931093
silesia, explicit params, compress cctx, 4813352
silesia, uncompressed literals, compress cctx, 4862377
silesia, uncompressed literals optimal, compress cctx, 4293262
silesia, huffman literals, compress cctx, 6178442
silesia, multithreaded with advanced params, compress cctx, 4862377
github, level -5, compress cctx, 205285
github, level -5 with dict, compress cctx, 47294
github, level -3, compress cctx, 190643
github, level -3 with dict, compress cctx, 48047
github, level -1, compress cctx, 175568
github, level -1 with dict, compress cctx, 43527
github, level 0, compress cctx, 136397
github, level 0 with dict, compress cctx, 41536
github, level 1, compress cctx, 142450
github, level 1 with dict, compress cctx, 42157
github, level 3, compress cctx, 136397
github, level 3 with dict, compress cctx, 41536
github, level 4, compress cctx, 136144
github, level 4 with dict, compress cctx, 41721
github, level 5, compress cctx, 135106
github, level 5 with dict, compress cctx, 38934
github, level 6, compress cctx, 135108
github, level 6 with dict, compress cctx, 38628
github, level 7, compress cctx, 135108
github, level 7 with dict, compress cctx, 38741
github, level 9, compress cctx, 135108
github, level 9 with dict, compress cctx, 39335
github, level 13, compress cctx, 133717
github, level 13 with dict, compress cctx, 39923
github, level 16, compress cctx, 133717
github, level 16 with dict, compress cctx, 37568
github, level 19, compress cctx, 133717
github, level 19 with dict, compress cctx, 37567
github, long distance mode, compress cctx, 141473
github, multithreaded, compress cctx, 141473
github, multithreaded long distance mode, compress cctx, 141473
github, small window log, compress cctx, 141473
github, small hash log, compress cctx, 138943
github, small chain log, compress cctx, 139239
github, explicit params, compress cctx, 140924
github, uncompressed literals, compress cctx, 136397
github, uncompressed literals optimal, compress cctx, 133717
github, huffman literals, compress cctx, 175568
github, multithreaded with advanced params, compress cctx, 141473
silesia, level -5, zstdcli, 6882514
silesia, level -3, zstdcli, 6568406
silesia, level -1, zstdcli, 6183433
silesia, level 0, zstdcli, 4862425
silesia, level 1, zstdcli, 5314157
silesia, level 3, zstdcli, 4862425
silesia, level 4, zstdcli, 4800677
silesia, level 5, zstdcli, 4710226
silesia, level 6, zstdcli, 4660044
silesia, level 7, zstdcli, 4596282
silesia, level 9, zstdcli, 4543910
silesia, level 13, zstdcli, 4482121
silesia, level 16, zstdcli, 4377439
silesia, level 19, zstdcli, 4293310
silesia, long distance mode, zstdcli, 4853437
silesia, multithreaded, zstdcli, 4862425
silesia, multithreaded long distance mode, zstdcli, 4853437
silesia, small window log, zstdcli, 7126434
silesia, small hash log, zstdcli, 6554946
silesia, small chain log, zstdcli, 4931141
silesia, explicit params, zstdcli, 4815380
silesia, uncompressed literals, zstdcli, 5155472
silesia, uncompressed literals optimal, zstdcli, 4325475
silesia, huffman literals, zstdcli, 5331158
silesia, multithreaded with advanced params, zstdcli, 5155472
silesia.tar, level -5, zstdcli, 6738906
silesia.tar, level -3, zstdcli, 6448409
silesia.tar, level -1, zstdcli, 6186908
silesia.tar, level 0, zstdcli, 4875136
silesia.tar, level 1, zstdcli, 5336255
silesia.tar, level 3, zstdcli, 4875136
silesia.tar, level 4, zstdcli, 4814531
silesia.tar, level 5, zstdcli, 4723284
silesia.tar, level 6, zstdcli, 4673591
silesia.tar, level 7, zstdcli, 4608342
silesia.tar, level 9, zstdcli, 4554700
silesia.tar, level 13, zstdcli, 4491706
silesia.tar, level 16, zstdcli, 4381281
silesia.tar, level 19, zstdcli, 4281518
silesia.tar, no source size, zstdcli, 4875132
silesia.tar, long distance mode, zstdcli, 4866975
silesia.tar, multithreaded, zstdcli, 4875136
silesia.tar, multithreaded long distance mode, zstdcli, 4866975
silesia.tar, small window log, zstdcli, 7130434
silesia.tar, small hash log, zstdcli, 6587841
silesia.tar, small chain log, zstdcli, 4943259
silesia.tar, explicit params, zstdcli, 4839202
silesia.tar, uncompressed literals, zstdcli, 5158134
silesia.tar, uncompressed literals optimal, zstdcli, 4321098
silesia.tar, huffman literals, zstdcli, 5347560
silesia.tar, multithreaded with advanced params, zstdcli, 5158134
github, level -5, zstdcli, 207285
github, level -5 with dict, zstdcli, 48718
github, level -3, zstdcli, 192643
github, level -3 with dict, zstdcli, 47395
github, level -1, zstdcli, 177568
github, level -1 with dict, zstdcli, 45170
github, level 0, zstdcli, 138397
github, level 0 with dict, zstdcli, 43170
github, level 1, zstdcli, 144450
github, level 1 with dict, zstdcli, 43682
github, level 3, zstdcli, 138397
github, level 3 with dict, zstdcli, 43170
github, level 4, zstdcli, 138144
github, level 4 with dict, zstdcli, 43306
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, 135717
github, level 13 with dict, zstdcli, 41716
github, level 16, zstdcli, 135717
github, level 16 with dict, zstdcli, 39577
github, level 19, zstdcli, 135717
github, level 19 with dict, zstdcli, 39576
github, long distance mode, zstdcli, 138397
github, multithreaded, zstdcli, 138397
github, multithreaded long distance mode, zstdcli, 138397
github, small window log, zstdcli, 138397
github, small hash log, zstdcli, 137467
github, small chain log, zstdcli, 138314
github, explicit params, zstdcli, 136140
github, uncompressed literals, zstdcli, 169004
github, uncompressed literals optimal, zstdcli, 158824
github, huffman literals, zstdcli, 144450
github, multithreaded with advanced params, zstdcli, 169004
silesia, level -5, advanced one pass, 6737567
silesia, level -3, advanced one pass, 6444663
silesia, level -1, advanced one pass, 6178442
silesia, level 0, advanced one pass, 4862377
silesia, level 1, advanced one pass, 5313144
silesia, level 3, advanced one pass, 4862377
silesia, level 4, advanced one pass, 4800629
silesia, level 5, advanced one pass, 4710178
silesia, level 6, advanced one pass, 4659996
silesia, level 7, advanced one pass, 4596234
silesia, level 9, advanced one pass, 4543862
silesia, level 13, advanced one pass, 4482073
silesia, level 16, advanced one pass, 4377391
silesia, level 19, advanced one pass, 4293262
silesia, no source size, advanced one pass, 4862377
silesia, long distance mode, advanced one pass, 4853389
silesia, multithreaded, advanced one pass, 4862377
silesia, multithreaded long distance mode, advanced one pass, 4853389
silesia, small window log, advanced one pass, 7126386
silesia, small hash log, advanced one pass, 6554898
silesia, small chain log, advanced one pass, 4931093
silesia, explicit params, advanced one pass, 4815369
silesia, uncompressed literals, advanced one pass, 5155424
silesia, uncompressed literals optimal, advanced one pass, 4325427
silesia, huffman literals, advanced one pass, 5326210
silesia, multithreaded with advanced params, advanced one pass, 5155424
silesia.tar, level -5, advanced one pass, 6738558
silesia.tar, level -3, advanced one pass, 6446362
silesia.tar, level -1, advanced one pass, 6186038
silesia.tar, level 0, advanced one pass, 4875008
silesia.tar, level 1, advanced one pass, 5334825
silesia.tar, level 3, advanced one pass, 4875008
silesia.tar, level 4, advanced one pass, 4813507
silesia.tar, level 5, advanced one pass, 4722235
silesia.tar, level 6, advanced one pass, 4672194
silesia.tar, level 7, advanced one pass, 4606658
silesia.tar, level 9, advanced one pass, 4554098
silesia.tar, level 13, advanced one pass, 4491702
silesia.tar, level 16, advanced one pass, 4381277
silesia.tar, level 19, advanced one pass, 4281514
silesia.tar, no source size, advanced one pass, 4875008
silesia.tar, long distance mode, advanced one pass, 4861218
silesia.tar, multithreaded, advanced one pass, 4874631
silesia.tar, multithreaded long distance mode, advanced one pass, 4860683
silesia.tar, small window log, advanced one pass, 7130394
silesia.tar, small hash log, advanced one pass, 6587833
silesia.tar, small chain log, advanced one pass, 4943255
silesia.tar, explicit params, advanced one pass, 4829974
silesia.tar, uncompressed literals, advanced one pass, 5157992
silesia.tar, uncompressed literals optimal, advanced one pass, 4321094
silesia.tar, huffman literals, advanced one pass, 5347283
silesia.tar, multithreaded with advanced params, advanced one pass, 5158545
github, level -5, advanced one pass, 205285
github, level -5 with dict, advanced one pass, 46718
github, level -3, advanced one pass, 190643
github, level -3 with dict, advanced one pass, 45395
github, level -1, advanced one pass, 175568
github, level -1 with dict, advanced one pass, 43170
github, level 0, advanced one pass, 136397
github, level 0 with dict, advanced one pass, 41170
github, level 1, advanced one pass, 142450
github, level 1 with dict, advanced one pass, 41682
github, level 3, advanced one pass, 136397
github, level 3 with dict, advanced one pass, 41170
github, level 4, advanced one pass, 136144
github, level 4 with dict, advanced one pass, 41306
github, level 5, advanced one pass, 135106
github, level 5 with dict, advanced one pass, 38938
github, level 6, advanced one pass, 135108
github, level 6 with dict, advanced one pass, 38632
github, level 7, advanced one pass, 135108
github, level 7 with dict, advanced one pass, 38766
github, level 9, advanced one pass, 135108
github, level 9 with dict, advanced one pass, 39326
github, level 13, advanced one pass, 133717
github, level 13 with dict, advanced one pass, 39716
github, level 16, advanced one pass, 133717
github, level 16 with dict, advanced one pass, 37577
github, level 19, advanced one pass, 133717
github, level 19 with dict, advanced one pass, 37576
github, no source size, advanced one pass, 136397
github, long distance mode, advanced one pass, 136397
github, multithreaded, advanced one pass, 136397
github, multithreaded long distance mode, advanced one pass, 136397
github, small window log, advanced one pass, 136397
github, small hash log, advanced one pass, 135467
github, small chain log, advanced one pass, 136314
github, explicit params, advanced one pass, 137670
github, uncompressed literals, advanced one pass, 167004
github, uncompressed literals optimal, advanced one pass, 156824
github, huffman literals, advanced one pass, 142450
github, multithreaded with advanced params, advanced one pass, 167004
silesia, level -5, advanced one pass small out, 6737567
silesia, level -3, advanced one pass small out, 6444663
silesia, level -1, advanced one pass small out, 6178442
silesia, level 0, advanced one pass small out, 4862377
silesia, level 1, advanced one pass small out, 5313144
silesia, level 3, advanced one pass small out, 4862377
silesia, level 4, advanced one pass small out, 4800629
silesia, level 5, advanced one pass small out, 4710178
silesia, level 6, advanced one pass small out, 4659996
silesia, level 7, advanced one pass small out, 4596234
silesia, level 9, advanced one pass small out, 4543862
silesia, level 13, advanced one pass small out, 4482073
silesia, level 16, advanced one pass small out, 4377391
silesia, level 19, advanced one pass small out, 4293262
silesia, no source size, advanced one pass small out, 4862377
silesia, long distance mode, advanced one pass small out, 4853389
silesia, multithreaded, advanced one pass small out, 4862377
silesia, multithreaded long distance mode, advanced one pass small out, 4853389
silesia, small window log, advanced one pass small out, 7126386
silesia, small hash log, advanced one pass small out, 6554898
silesia, small chain log, advanced one pass small out, 4931093
silesia, explicit params, advanced one pass small out, 4815369
silesia, uncompressed literals, advanced one pass small out, 5155424
silesia, uncompressed literals optimal, advanced one pass small out, 4325427
silesia, huffman literals, advanced one pass small out, 5326210
silesia, multithreaded with advanced params, advanced one pass small out, 5155424
silesia.tar, level -5, advanced one pass small out, 6738558
silesia.tar, level -3, advanced one pass small out, 6446362
silesia.tar, level -1, advanced one pass small out, 6186038
silesia.tar, level 0, advanced one pass small out, 4875008
silesia.tar, level 1, advanced one pass small out, 5334825
silesia.tar, level 3, advanced one pass small out, 4875008
silesia.tar, level 4, advanced one pass small out, 4813507
silesia.tar, level 5, advanced one pass small out, 4722235
silesia.tar, level 6, advanced one pass small out, 4672194
silesia.tar, level 7, advanced one pass small out, 4606658
silesia.tar, level 9, advanced one pass small out, 4554098
silesia.tar, level 13, advanced one pass small out, 4491702
silesia.tar, level 16, advanced one pass small out, 4381277
silesia.tar, level 19, advanced one pass small out, 4281514
silesia.tar, no source size, advanced one pass small out, 4875008
silesia.tar, long distance mode, advanced one pass small out, 4861218
silesia.tar, multithreaded, advanced one pass small out, 4874631
silesia.tar, multithreaded long distance mode, advanced one pass small out, 4860683
silesia.tar, small window log, advanced one pass small out, 7130394
silesia.tar, small hash log, advanced one pass small out, 6587833
silesia.tar, small chain log, advanced one pass small out, 4943255
silesia.tar, explicit params, advanced one pass small out, 4829974
silesia.tar, uncompressed literals, advanced one pass small out, 5157992
silesia.tar, uncompressed literals optimal, advanced one pass small out, 4321094
silesia.tar, huffman literals, advanced one pass small out, 5347283
silesia.tar, multithreaded with advanced params, advanced one pass small out, 5158545
github, level -5, advanced one pass small out, 205285
github, level -5 with dict, advanced one pass small out, 46718
github, level -3, advanced one pass small out, 190643
github, level -3 with dict, advanced one pass small out, 45395
github, level -1, advanced one pass small out, 175568
github, level -1 with dict, advanced one pass small out, 43170
github, level 0, advanced one pass small out, 136397
github, level 0 with dict, advanced one pass small out, 41170
github, level 1, advanced one pass small out, 142450
github, level 1 with dict, advanced one pass small out, 41682
github, level 3, advanced one pass small out, 136397
github, level 3 with dict, advanced one pass small out, 41170
github, level 4, advanced one pass small out, 136144
github, level 4 with dict, advanced one pass small out, 41306
github, level 5, advanced one pass small out, 135106
github, level 5 with dict, advanced one pass small out, 38938
github, level 6, advanced one pass small out, 135108
github, level 6 with dict, advanced one pass small out, 38632
github, level 7, advanced one pass small out, 135108
github, level 7 with dict, advanced one pass small out, 38766
github, level 9, advanced one pass small out, 135108
github, level 9 with dict, advanced one pass small out, 39326
github, level 13, advanced one pass small out, 133717
github, level 13 with dict, advanced one pass small out, 39716
github, level 16, advanced one pass small out, 133717
github, level 16 with dict, advanced one pass small out, 37577
github, level 19, advanced one pass small out, 133717
github, level 19 with dict, advanced one pass small out, 37576
github, no source size, advanced one pass small out, 136397
github, long distance mode, advanced one pass small out, 136397
github, multithreaded, advanced one pass small out, 136397
github, multithreaded long distance mode, advanced one pass small out, 136397
github, small window log, advanced one pass small out, 136397
github, small hash log, advanced one pass small out, 135467
github, small chain log, advanced one pass small out, 136314
github, explicit params, advanced one pass small out, 137670
github, uncompressed literals, advanced one pass small out, 167004
github, uncompressed literals optimal, advanced one pass small out, 156824
github, huffman literals, advanced one pass small out, 142450
github, multithreaded with advanced params, advanced one pass small out, 167004
silesia, level -5, advanced streaming, 6882466
silesia, level -3, advanced streaming, 6568358
silesia, level -1, advanced streaming, 6183385
silesia, level 0, advanced streaming, 4862377
silesia, level 1, advanced streaming, 5314109
silesia, level 3, advanced streaming, 4862377
silesia, level 4, advanced streaming, 4800629
silesia, level 5, advanced streaming, 4710178
silesia, level 6, advanced streaming, 4659996
silesia, level 7, advanced streaming, 4596234
silesia, level 9, advanced streaming, 4543862
silesia, level 13, advanced streaming, 4482073
silesia, level 16, advanced streaming, 4377391
silesia, level 19, advanced streaming, 4293262
silesia, no source size, advanced streaming, 4862341
silesia, long distance mode, advanced streaming, 4853389
silesia, multithreaded, advanced streaming, 4862377
silesia, multithreaded long distance mode, advanced streaming, 4853389
silesia, small window log, advanced streaming, 7126389
silesia, small hash log, advanced streaming, 6554898
silesia, small chain log, advanced streaming, 4931093
silesia, explicit params, advanced streaming, 4815380
silesia, uncompressed literals, advanced streaming, 5155424
silesia, uncompressed literals optimal, advanced streaming, 4325427
silesia, huffman literals, advanced streaming, 5331110
silesia, multithreaded with advanced params, advanced streaming, 5155424
silesia.tar, level -5, advanced streaming, 6982738
silesia.tar, level -3, advanced streaming, 6641264
silesia.tar, level -1, advanced streaming, 6190789
silesia.tar, level 0, advanced streaming, 4875010
silesia.tar, level 1, advanced streaming, 5336879
silesia.tar, level 3, advanced streaming, 4875010
silesia.tar, level 4, advanced streaming, 4813507
silesia.tar, level 5, advanced streaming, 4722240
silesia.tar, level 6, advanced streaming, 4672203
silesia.tar, level 7, advanced streaming, 4606658
silesia.tar, level 9, advanced streaming, 4554105
silesia.tar, level 13, advanced streaming, 4491703
silesia.tar, level 16, advanced streaming, 4381277
silesia.tar, level 19, advanced streaming, 4281514
silesia.tar, no source size, advanced streaming, 4875006
silesia.tar, long distance mode, advanced streaming, 4861218
silesia.tar, multithreaded, advanced streaming, 4875132
silesia.tar, multithreaded long distance mode, advanced streaming, 4866971
silesia.tar, small window log, advanced streaming, 7130394
silesia.tar, small hash log, advanced streaming, 6587834
silesia.tar, small chain log, advanced streaming, 4943260
silesia.tar, explicit params, advanced streaming, 4830002
silesia.tar, uncompressed literals, advanced streaming, 5157995
silesia.tar, uncompressed literals optimal, advanced streaming, 4321094
silesia.tar, huffman literals, advanced streaming, 5352306
silesia.tar, multithreaded with advanced params, advanced streaming, 5158130
github, level -5, advanced streaming, 205285
github, level -5 with dict, advanced streaming, 46718
github, level -3, advanced streaming, 190643
github, level -3 with dict, advanced streaming, 45395
github, level -1, advanced streaming, 175568
github, level -1 with dict, advanced streaming, 43170
github, level 0, advanced streaming, 136397
github, level 0 with dict, advanced streaming, 41170
github, level 1, advanced streaming, 142450
github, level 1 with dict, advanced streaming, 41682
github, level 3, advanced streaming, 136397
github, level 3 with dict, advanced streaming, 41170
github, level 4, advanced streaming, 136144
github, level 4 with dict, advanced streaming, 41306
github, level 5, advanced streaming, 135106
github, level 5 with dict, advanced streaming, 38938
github, level 6, advanced streaming, 135108
github, level 6 with dict, advanced streaming, 38632
github, level 7, advanced streaming, 135108
github, level 7 with dict, advanced streaming, 38766
github, level 9, advanced streaming, 135108
github, level 9 with dict, advanced streaming, 39326
github, level 13, advanced streaming, 133717
github, level 13 with dict, advanced streaming, 39716
github, level 16, advanced streaming, 133717
github, level 16 with dict, advanced streaming, 37577
github, level 19, advanced streaming, 133717
github, level 19 with dict, advanced streaming, 37576
github, no source size, advanced streaming, 136397
github, long distance mode, advanced streaming, 136397
github, multithreaded, advanced streaming, 136397
github, multithreaded long distance mode, advanced streaming, 136397
github, small window log, advanced streaming, 136397
github, small hash log, advanced streaming, 135467
github, small chain log, advanced streaming, 136314
github, explicit params, advanced streaming, 137670
github, uncompressed literals, advanced streaming, 167004
github, uncompressed literals optimal, advanced streaming, 156824
github, huffman literals, advanced streaming, 142450
github, multithreaded with advanced params, advanced streaming, 167004
silesia, level -5, old streaming, 6882466
silesia, level -3, old streaming, 6568358
silesia, level -1, old streaming, 6183385
silesia, level 0, old streaming, 4862377
silesia, level 1, old streaming, 5314109
silesia, level 3, old streaming, 4862377
silesia, level 4, old streaming, 4800629
silesia, level 5, old streaming, 4710178
silesia, level 6, old streaming, 4659996
silesia, level 7, old streaming, 4596234
silesia, level 9, old streaming, 4543862
silesia, level 13, old streaming, 4482073
silesia, level 16, old streaming, 4377391
silesia, level 19, old streaming, 4293262
silesia, no source size, old streaming, 4862341
silesia, long distance mode, old streaming, 12000408
silesia, multithreaded, old streaming, 12000408
silesia, multithreaded long distance mode, old streaming, 12000408
silesia, small window log, old streaming, 12000408
silesia, small hash log, old streaming, 12000408
silesia, small chain log, old streaming, 12000408
silesia, explicit params, old streaming, 12000408
silesia, uncompressed literals, old streaming, 4862377
silesia, uncompressed literals optimal, old streaming, 4293262
silesia, huffman literals, old streaming, 6183385
silesia, multithreaded with advanced params, old streaming, 12000408
silesia.tar, level -5, old streaming, 6982738
silesia.tar, level -3, old streaming, 6641264
silesia.tar, level -1, old streaming, 6190789
silesia.tar, level 0, old streaming, 4875010
silesia.tar, level 1, old streaming, 5336879
silesia.tar, level 3, old streaming, 4875010
silesia.tar, level 4, old streaming, 4813507
silesia.tar, level 5, old streaming, 4722240
silesia.tar, level 6, old streaming, 4672203
silesia.tar, level 7, old streaming, 4606658
silesia.tar, level 9, old streaming, 4554105
silesia.tar, level 13, old streaming, 4491703
silesia.tar, level 16, old streaming, 4381277
silesia.tar, level 19, old streaming, 4281514
silesia.tar, no source size, old streaming, 4875006
silesia.tar, long distance mode, old streaming, 12022046
silesia.tar, multithreaded, old streaming, 12022046
silesia.tar, multithreaded long distance mode, old streaming, 12022046
silesia.tar, small window log, old streaming, 12022046
silesia.tar, small hash log, old streaming, 12022046
silesia.tar, small chain log, old streaming, 12022046
silesia.tar, explicit params, old streaming, 12022046
silesia.tar, uncompressed literals, old streaming, 4875010
silesia.tar, uncompressed literals optimal, old streaming, 4281514
silesia.tar, huffman literals, old streaming, 6190789
silesia.tar, multithreaded with advanced params, old streaming, 12022046
github, level -5, old streaming, 205285
github, level -5 with dict, old streaming, 46718
github, level -3, old streaming, 190643
github, level -3 with dict, old streaming, 45395
github, level -1, old streaming, 175568
github, level -1 with dict, old streaming, 43170
github, level 0, old streaming, 136397
github, level 0 with dict, old streaming, 41170
github, level 1, old streaming, 142450
github, level 1 with dict, old streaming, 41682
github, level 3, old streaming, 136397
github, level 3 with dict, old streaming, 41170
github, level 4, old streaming, 136144
github, level 4 with dict, old streaming, 41306
github, level 5, old streaming, 135106
github, level 5 with dict, old streaming, 38938
github, level 6, old streaming, 135108
github, level 6 with dict, old streaming, 38632
github, level 7, old streaming, 135108
github, level 7 with dict, old streaming, 38766
github, level 9, old streaming, 135108
github, level 9 with dict, old streaming, 39326
github, level 13, old streaming, 133717
github, level 13 with dict, old streaming, 39716
github, level 16, old streaming, 133717
github, level 16 with dict, old streaming, 37577
github, level 19, old streaming, 133717
github, level 19 with dict, old streaming, 37576
github, no source size, old streaming, 141003
github, long distance mode, old streaming, 412933
github, multithreaded, old streaming, 412933
github, multithreaded long distance mode, old streaming, 412933
github, small window log, old streaming, 412933
github, small hash log, old streaming, 412933
github, small chain log, old streaming, 412933
github, explicit params, old streaming, 412933
github, uncompressed literals, old streaming, 136397
github, uncompressed literals optimal, old streaming, 133717
github, huffman literals, old streaming, 175568
github, multithreaded with advanced params, old streaming, 412933
silesia, level -5, old streaming advanced, 6882466
silesia, level -3, old streaming advanced, 6568358
silesia, level -1, old streaming advanced, 6183385
silesia, level 0, old streaming advanced, 4862377
silesia, level 1, old streaming advanced, 5314109
silesia, level 3, old streaming advanced, 4862377
silesia, level 4, old streaming advanced, 4800629
silesia, level 5, old streaming advanced, 4710178
silesia, level 6, old streaming advanced, 4659996
silesia, level 7, old streaming advanced, 4596234
silesia, level 9, old streaming advanced, 4543862
silesia, level 13, old streaming advanced, 4482073
silesia, level 16, old streaming advanced, 4377391
silesia, level 19, old streaming advanced, 4293262
silesia, no source size, old streaming advanced, 4862341
silesia, long distance mode, old streaming advanced, 12000408
silesia, multithreaded, old streaming advanced, 12000408
silesia, multithreaded long distance mode, old streaming advanced, 12000408
silesia, small window log, old streaming advanced, 12000408
silesia, small hash log, old streaming advanced, 12000408
silesia, small chain log, old streaming advanced, 12000408
silesia, explicit params, old streaming advanced, 12000408
silesia, uncompressed literals, old streaming advanced, 4862377
silesia, uncompressed literals optimal, old streaming advanced, 4293262
silesia, huffman literals, old streaming advanced, 6183385
silesia, multithreaded with advanced params, old streaming advanced, 12000408
silesia.tar, level -5, old streaming advanced, 6982738
silesia.tar, level -3, old streaming advanced, 6641264
silesia.tar, level -1, old streaming advanced, 6190789
silesia.tar, level 0, old streaming advanced, 4875010
silesia.tar, level 1, old streaming advanced, 5336879
silesia.tar, level 3, old streaming advanced, 4875010
silesia.tar, level 4, old streaming advanced, 4813507
silesia.tar, level 5, old streaming advanced, 4722240
silesia.tar, level 6, old streaming advanced, 4672203
silesia.tar, level 7, old streaming advanced, 4606658
silesia.tar, level 9, old streaming advanced, 4554105
silesia.tar, level 13, old streaming advanced, 4491703
silesia.tar, level 16, old streaming advanced, 4381277
silesia.tar, level 19, old streaming advanced, 4281514
silesia.tar, no source size, old streaming advanced, 4875006
silesia.tar, long distance mode, old streaming advanced, 12022046
silesia.tar, multithreaded, old streaming advanced, 12022046
silesia.tar, multithreaded long distance mode, old streaming advanced, 12022046
silesia.tar, small window log, old streaming advanced, 12022046
silesia.tar, small hash log, old streaming advanced, 12022046
silesia.tar, small chain log, old streaming advanced, 12022046
silesia.tar, explicit params, old streaming advanced, 12022046
silesia.tar, uncompressed literals, old streaming advanced, 4875010
silesia.tar, uncompressed literals optimal, old streaming advanced, 4281514
silesia.tar, huffman literals, old streaming advanced, 6190789
silesia.tar, multithreaded with advanced params, old streaming advanced, 12022046
github, level -5, old streaming advanced, 205285
github, level -5 with dict, old streaming advanced, 46718
github, level -3, old streaming advanced, 190643
github, level -3 with dict, old streaming advanced, 45395
github, level -1, old streaming advanced, 175568
github, level -1 with dict, old streaming advanced, 43170
github, level 0, old streaming advanced, 136397
github, level 0 with dict, old streaming advanced, 41170
github, level 1, old streaming advanced, 142450
github, level 1 with dict, old streaming advanced, 41682
github, level 3, old streaming advanced, 136397
github, level 3 with dict, old streaming advanced, 41170
github, level 4, old streaming advanced, 136144
github, level 4 with dict, old streaming advanced, 41306
github, level 5, old streaming advanced, 135106
github, level 5 with dict, old streaming advanced, 38938
github, level 6, old streaming advanced, 135108
github, level 6 with dict, old streaming advanced, 38632
github, level 7, old streaming advanced, 135108
github, level 7 with dict, old streaming advanced, 38766
github, level 9, old streaming advanced, 135108
github, level 9 with dict, old streaming advanced, 39326
github, level 13, old streaming advanced, 133717
github, level 13 with dict, old streaming advanced, 39716
github, level 16, old streaming advanced, 133717
github, level 16 with dict, old streaming advanced, 37577
github, level 19, old streaming advanced, 133717
github, level 19 with dict, old streaming advanced, 37576
github, no source size, old streaming advanced, 141003
github, long distance mode, old streaming advanced, 412933
github, multithreaded, old streaming advanced, 412933
github, multithreaded long distance mode, old streaming advanced, 412933
github, small window log, old streaming advanced, 412933
github, small hash log, old streaming advanced, 412933
github, small chain log, old streaming advanced, 412933
github, explicit params, old streaming advanced, 412933
github, uncompressed literals, old streaming advanced, 136397
github, uncompressed literals optimal, old streaming advanced, 133717
github, huffman literals, old streaming advanced, 175568
github, multithreaded with advanced params, old streaming advanced, 412933
silesia, level -5, old streaming cdcit, 6882466
silesia, level -3, old streaming cdcit, 6568358
silesia, level -1, old streaming cdcit, 6183385
silesia, level 0, old streaming cdcit, 4862377
silesia, level 1, old streaming cdcit, 5314109
silesia, level 3, old streaming cdcit, 4862377
silesia, level 4, old streaming cdcit, 4800629
silesia, level 5, old streaming cdcit, 4710178
silesia, level 6, old streaming cdcit, 4659996
silesia, level 7, old streaming cdcit, 4596234
silesia, level 9, old streaming cdcit, 4543862
silesia, level 13, old streaming cdcit, 4482073
silesia, level 16, old streaming cdcit, 4377391
silesia, level 19, old streaming cdcit, 4293262
silesia, no source size, old streaming cdcit, 4862341
silesia, long distance mode, old streaming cdcit, 12000408
silesia, multithreaded, old streaming cdcit, 12000408
silesia, multithreaded long distance mode, old streaming cdcit, 12000408
silesia, small window log, old streaming cdcit, 12000408
silesia, small hash log, old streaming cdcit, 12000408
silesia, small chain log, old streaming cdcit, 12000408
silesia, explicit params, old streaming cdcit, 12000408
silesia, uncompressed literals, old streaming cdcit, 4862377
silesia, uncompressed literals optimal, old streaming cdcit, 4293262
silesia, huffman literals, old streaming cdcit, 6183385
silesia, multithreaded with advanced params, old streaming cdcit, 12000408
silesia.tar, level -5, old streaming cdcit, 6982738
silesia.tar, level -3, old streaming cdcit, 6641264
silesia.tar, level -1, old streaming cdcit, 6190789
silesia.tar, level 0, old streaming cdcit, 4875010
silesia.tar, level 1, old streaming cdcit, 5336879
silesia.tar, level 3, old streaming cdcit, 4875010
silesia.tar, level 4, old streaming cdcit, 4813507
silesia.tar, level 5, old streaming cdcit, 4722240
silesia.tar, level 6, old streaming cdcit, 4672203
silesia.tar, level 7, old streaming cdcit, 4606658
silesia.tar, level 9, old streaming cdcit, 4554105
silesia.tar, level 13, old streaming cdcit, 4491703
silesia.tar, level 16, old streaming cdcit, 4381277
silesia.tar, level 19, old streaming cdcit, 4281514
silesia.tar, no source size, old streaming cdcit, 4875006
silesia.tar, long distance mode, old streaming cdcit, 12022046
silesia.tar, multithreaded, old streaming cdcit, 12022046
silesia.tar, multithreaded long distance mode, old streaming cdcit, 12022046
silesia.tar, small window log, old streaming cdcit, 12022046
silesia.tar, small hash log, old streaming cdcit, 12022046
silesia.tar, small chain log, old streaming cdcit, 12022046
silesia.tar, explicit params, old streaming cdcit, 12022046
silesia.tar, uncompressed literals, old streaming cdcit, 4875010
silesia.tar, uncompressed literals optimal, old streaming cdcit, 4281514
silesia.tar, huffman literals, old streaming cdcit, 6190789
silesia.tar, multithreaded with advanced params, old streaming cdcit, 12022046
github, level -5, old streaming cdcit, 205285
github, level -5 with dict, old streaming cdcit, 46718
github, level -3, old streaming cdcit, 190643
github, level -3 with dict, old streaming cdcit, 45395
github, level -1, old streaming cdcit, 175568
github, level -1 with dict, old streaming cdcit, 43170
github, level 0, old streaming cdcit, 136397
github, level 0 with dict, old streaming cdcit, 41170
github, level 1, old streaming cdcit, 142450
github, level 1 with dict, old streaming cdcit, 41682
github, level 3, old streaming cdcit, 136397
github, level 3 with dict, old streaming cdcit, 41170
github, level 4, old streaming cdcit, 136144
github, level 4 with dict, old streaming cdcit, 41306
github, level 5, old streaming cdcit, 135106
github, level 5 with dict, old streaming cdcit, 38938
github, level 6, old streaming cdcit, 135108
github, level 6 with dict, old streaming cdcit, 38632
github, level 7, old streaming cdcit, 135108
github, level 7 with dict, old streaming cdcit, 38766
github, level 9, old streaming cdcit, 135108
github, level 9 with dict, old streaming cdcit, 39326
github, level 13, old streaming cdcit, 133717
github, level 13 with dict, old streaming cdcit, 39716
github, level 16, old streaming cdcit, 133717
github, level 16 with dict, old streaming cdcit, 37577
github, level 19, old streaming cdcit, 133717
github, level 19 with dict, old streaming cdcit, 37576
github, no source size, old streaming cdcit, 141003
github, long distance mode, old streaming cdcit, 412933
github, multithreaded, old streaming cdcit, 412933
github, multithreaded long distance mode, old streaming cdcit, 412933
github, small window log, old streaming cdcit, 412933
github, small hash log, old streaming cdcit, 412933
github, small chain log, old streaming cdcit, 412933
github, explicit params, old streaming cdcit, 412933
github, uncompressed literals, old streaming cdcit, 136397
github, uncompressed literals optimal, old streaming cdcit, 133717
github, huffman literals, old streaming cdcit, 175568
github, multithreaded with advanced params, old streaming cdcit, 412933
silesia, level -5, old streaming advanced cdict, 6882466
silesia, level -3, old streaming advanced cdict, 6568358
silesia, level -1, old streaming advanced cdict, 6183385
silesia, level 0, old streaming advanced cdict, 4862377
silesia, level 1, old streaming advanced cdict, 5314109
silesia, level 3, old streaming advanced cdict, 4862377
silesia, level 4, old streaming advanced cdict, 4800629
silesia, level 5, old streaming advanced cdict, 4710178
silesia, level 6, old streaming advanced cdict, 4659996
silesia, level 7, old streaming advanced cdict, 4596234
silesia, level 9, old streaming advanced cdict, 4543862
silesia, level 13, old streaming advanced cdict, 4482073
silesia, level 16, old streaming advanced cdict, 4377391
silesia, level 19, old streaming advanced cdict, 4293262
silesia, no source size, old streaming advanced cdict, 4862341
silesia, long distance mode, old streaming advanced cdict, 12000408
silesia, multithreaded, old streaming advanced cdict, 12000408
silesia, multithreaded long distance mode, old streaming advanced cdict, 12000408
silesia, small window log, old streaming advanced cdict, 12000408
silesia, small hash log, old streaming advanced cdict, 12000408
silesia, small chain log, old streaming advanced cdict, 12000408
silesia, explicit params, old streaming advanced cdict, 12000408
silesia, uncompressed literals, old streaming advanced cdict, 4862377
silesia, uncompressed literals optimal, old streaming advanced cdict, 4293262
silesia, huffman literals, old streaming advanced cdict, 6183385
silesia, multithreaded with advanced params, old streaming advanced cdict, 12000408
silesia.tar, level -5, old streaming advanced cdict, 6982738
silesia.tar, level -3, old streaming advanced cdict, 6641264
silesia.tar, level -1, old streaming advanced cdict, 6190789
silesia.tar, level 0, old streaming advanced cdict, 4875010
silesia.tar, level 1, old streaming advanced cdict, 5336879
silesia.tar, level 3, old streaming advanced cdict, 4875010
silesia.tar, level 4, old streaming advanced cdict, 4813507
silesia.tar, level 5, old streaming advanced cdict, 4722240
silesia.tar, level 6, old streaming advanced cdict, 4672203
silesia.tar, level 7, old streaming advanced cdict, 4606658
silesia.tar, level 9, old streaming advanced cdict, 4554105
silesia.tar, level 13, old streaming advanced cdict, 4491703
silesia.tar, level 16, old streaming advanced cdict, 4381277
silesia.tar, level 19, old streaming advanced cdict, 4281514
silesia.tar, no source size, old streaming advanced cdict, 4875006
silesia.tar, long distance mode, old streaming advanced cdict, 12022046
silesia.tar, multithreaded, old streaming advanced cdict, 12022046
silesia.tar, multithreaded long distance mode, old streaming advanced cdict, 12022046
silesia.tar, small window log, old streaming advanced cdict, 12022046
silesia.tar, small hash log, old streaming advanced cdict, 12022046
silesia.tar, small chain log, old streaming advanced cdict, 12022046
silesia.tar, explicit params, old streaming advanced cdict, 12022046
silesia.tar, uncompressed literals, old streaming advanced cdict, 4875010
silesia.tar, uncompressed literals optimal, old streaming advanced cdict, 4281514
silesia.tar, huffman literals, old streaming advanced cdict, 6190789
silesia.tar, multithreaded with advanced params, old streaming advanced cdict, 12022046
github, level -5, old streaming advanced cdict, 205285
github, level -5 with dict, old streaming advanced cdict, 46718
github, level -3, old streaming advanced cdict, 190643
github, level -3 with dict, old streaming advanced cdict, 45395
github, level -1, old streaming advanced cdict, 175568
github, level -1 with dict, old streaming advanced cdict, 43170
github, level 0, old streaming advanced cdict, 136397
github, level 0 with dict, old streaming advanced cdict, 41170
github, level 1, old streaming advanced cdict, 142450
github, level 1 with dict, old streaming advanced cdict, 41682
github, level 3, old streaming advanced cdict, 136397
github, level 3 with dict, old streaming advanced cdict, 41170
github, level 4, old streaming advanced cdict, 136144
github, level 4 with dict, old streaming advanced cdict, 41306
github, level 5, old streaming advanced cdict, 135106
github, level 5 with dict, old streaming advanced cdict, 38938
github, level 6, old streaming advanced cdict, 135108
github, level 6 with dict, old streaming advanced cdict, 38632
github, level 7, old streaming advanced cdict, 135108
github, level 7 with dict, old streaming advanced cdict, 38766
github, level 9, old streaming advanced cdict, 135108
github, level 9 with dict, old streaming advanced cdict, 39326
github, level 13, old streaming advanced cdict, 133717
github, level 13 with dict, old streaming advanced cdict, 39716
github, level 16, old streaming advanced cdict, 133717
github, level 16 with dict, old streaming advanced cdict, 37577
github, level 19, old streaming advanced cdict, 133717
github, level 19 with dict, old streaming advanced cdict, 37576
github, no source size, old streaming advanced cdict, 141003
github, long distance mode, old streaming advanced cdict, 412933
github, multithreaded, old streaming advanced cdict, 412933
github, multithreaded long distance mode, old streaming advanced cdict, 412933
github, small window log, old streaming advanced cdict, 412933
github, small hash log, old streaming advanced cdict, 412933
github, small chain log, old streaming advanced cdict, 412933
github, explicit params, old streaming advanced cdict, 412933
github, uncompressed literals, old streaming advanced cdict, 136397
github, uncompressed literals optimal, old streaming advanced cdict, 133717
github, huffman literals, old streaming advanced cdict, 175568
github, multithreaded with advanced params, old streaming advanced cdict, 412933
1 Data Config Method Total compressed size
2 silesia.tar level -5 compress simple 7160438 6738558
3 silesia.tar level -3 compress simple 6789024 6446362
4 silesia.tar level -1 compress simple 6195462 6186038
5 silesia.tar level 0 compress simple 4875008
6 silesia.tar level 1 compress simple 5339697 5334825
7 silesia.tar level 3 compress simple 4875008
8 silesia.tar level 4 compress simple 4813507
9 silesia.tar level 5 compress simple 4722235
10 silesia.tar level 6 compress simple 4672194
11 silesia.tar level 7 compress simple 4606658
12 silesia.tar level 9 compress simple 4554098
13 silesia.tar level 13 compress simple 4491702
14 silesia.tar level 16 compress simple 4381277
15 silesia.tar level 19 compress simple 4281514
16 silesia silesia.tar level -5 uncompressed literals compress cctx compress simple 7152294 4875008
17 silesia silesia.tar level -3 uncompressed literals optimal compress cctx compress simple 6789969 4281514
18 silesia silesia.tar level -1 huffman literals compress cctx compress simple 6191548 6186038
19 silesia level 0 level -5 compress cctx 4862377 6737567
20 silesia level 1 level -3 compress cctx 5318036 6444663
21 silesia level 3 level -1 compress cctx 4862377 6178442
22 silesia level 4 level 0 compress cctx 4800629 4862377
23 silesia level 5 level 1 compress cctx 4710178 5313144
24 silesia level 6 level 3 compress cctx 4659996 4862377
25 silesia level 7 level 4 compress cctx 4596234 4800629
26 silesia level 9 level 5 compress cctx 4543862 4710178
27 silesia level 13 level 6 compress cctx 4482073 4659996
28 silesia level 16 level 7 compress cctx 4377391 4596234
29 silesia level 19 level 9 compress cctx 4293262 4543862
30 silesia long distance mode level 13 compress cctx 4862377 4482073
31 silesia multithreaded level 16 compress cctx 4862377 4377391
32 silesia multithreaded long distance mode level 19 compress cctx 4862377 4293262
33 silesia small window log long distance mode compress cctx 7115734 4862377
34 silesia small hash log multithreaded compress cctx 6554898 4862377
35 silesia small chain log multithreaded long distance mode compress cctx 4931093 4862377
36 silesia explicit params small window log compress cctx 4813352 7115734
37 github silesia level -5 small hash log compress cctx 232744 6554898
38 github silesia level -5 with dict small chain log compress cctx 47294 4931093
39 github silesia level -3 explicit params compress cctx 220611 4813352
40 github silesia level -3 with dict uncompressed literals compress cctx 48047 4862377
41 github silesia level -1 uncompressed literals optimal compress cctx 176575 4293262
42 github silesia level -1 with dict huffman literals compress cctx 43527 6178442
43 github silesia level 0 multithreaded with advanced params compress cctx 136397 4862377
44 github level 0 with dict level -5 compress cctx 41536 205285
45 github level 1 level -5 with dict compress cctx 143457 47294
46 github level 1 with dict level -3 compress cctx 42157 190643
47 github level 3 level -3 with dict compress cctx 136397 48047
48 github level 3 with dict level -1 compress cctx 41536 175568
49 github level 4 level -1 with dict compress cctx 136144 43527
50 github level 4 with dict level 0 compress cctx 41721 136397
51 github level 5 level 0 with dict compress cctx 135106 41536
52 github level 5 with dict level 1 compress cctx 38934 142450
53 github level 6 level 1 with dict compress cctx 135108 42157
54 github level 6 with dict level 3 compress cctx 38628 136397
55 github level 7 level 3 with dict compress cctx 135108 41536
56 github level 7 with dict level 4 compress cctx 38741 136144
57 github level 9 level 4 with dict compress cctx 135108 41721
58 github level 9 with dict level 5 compress cctx 39335 135106
59 github level 13 level 5 with dict compress cctx 133717 38934
60 github level 13 with dict level 6 compress cctx 39923 135108
61 github level 16 level 6 with dict compress cctx 133717 38628
62 github level 16 with dict level 7 compress cctx 37568 135108
63 github level 19 level 7 with dict compress cctx 133717 38741
64 github level 19 with dict level 9 compress cctx 37567 135108
65 github long distance mode level 9 with dict compress cctx decompression error 39335
66 github multithreaded level 13 compress cctx decompression error 133717
67 github multithreaded long distance mode level 13 with dict compress cctx decompression error 39923
68 github small window log level 16 compress cctx decompression error 133717
69 github small hash log level 16 with dict compress cctx decompression error 37568
70 github small chain log level 19 compress cctx decompression error 133717
71 github explicit params level 19 with dict compress cctx decompression error 37567
72 silesia github level -5 long distance mode zstdcli compress cctx 7152342 141473
73 silesia github level -3 multithreaded zstdcli compress cctx 6790021 141473
74 silesia github level -1 multithreaded long distance mode zstdcli compress cctx 6191597 141473
75 silesia github level 0 small window log zstdcli compress cctx 4862425 141473
76 silesia github level 1 small hash log zstdcli compress cctx 5318084 138943
77 silesia github level 3 small chain log zstdcli compress cctx 4862425 139239
78 silesia github level 4 explicit params zstdcli compress cctx 4800677 140924
79 silesia github level 5 uncompressed literals zstdcli compress cctx 4710226 136397
80 silesia github level 6 uncompressed literals optimal zstdcli compress cctx 4660044 133717
81 silesia github level 7 huffman literals zstdcli compress cctx 4596282 175568
82 silesia github level 9 multithreaded with advanced params zstdcli compress cctx 4543910 141473
83 silesia level 13 level -5 zstdcli 4482121 6882514
84 silesia level 16 level -3 zstdcli 4377439 6568406
85 silesia level 19 level -1 zstdcli 4293310 6183433
86 silesia long distance mode level 0 zstdcli 4853437 4862425
87 silesia multithreaded level 1 zstdcli 4862425 5314157
88 silesia multithreaded long distance mode level 3 zstdcli 4853437 4862425
89 silesia small window log level 4 zstdcli 7126434 4800677
90 silesia small hash log level 5 zstdcli 6554946 4710226
91 silesia small chain log level 6 zstdcli 4931141 4660044
92 silesia explicit params level 7 zstdcli 4815380 4596282
93 silesia.tar silesia level -5 level 9 zstdcli 7161160 4543910
94 silesia.tar silesia level -3 level 13 zstdcli 6789865 4482121
95 silesia.tar silesia level -1 level 16 zstdcli 6196433 4377439
96 silesia.tar silesia level 0 level 19 zstdcli 4875136 4293310
97 silesia.tar silesia level 1 long distance mode zstdcli 5340573 4853437
98 silesia.tar silesia level 3 multithreaded zstdcli 4875136 4862425
99 silesia.tar silesia level 4 multithreaded long distance mode zstdcli 4814531 4853437
100 silesia.tar silesia level 5 small window log zstdcli 4723284 7126434
101 silesia.tar silesia level 6 small hash log zstdcli 4673591 6554946
102 silesia.tar silesia level 7 small chain log zstdcli 4608342 4931141
103 silesia.tar silesia level 9 explicit params zstdcli 4554700 4815380
104 silesia.tar silesia level 13 uncompressed literals zstdcli 4491706 5155472
105 silesia.tar silesia level 16 uncompressed literals optimal zstdcli 4381281 4325475
106 silesia.tar silesia level 19 huffman literals zstdcli 4281518 5331158
107 silesia.tar silesia no source size multithreaded with advanced params zstdcli 4875132 5155472
108 silesia.tar long distance mode level -5 zstdcli 4866975 6738906
109 silesia.tar multithreaded level -3 zstdcli 4875136 6448409
110 silesia.tar multithreaded long distance mode level -1 zstdcli 4866975 6186908
111 silesia.tar small window log level 0 zstdcli 7130434 4875136
112 silesia.tar small hash log level 1 zstdcli 6587841 5336255
113 silesia.tar small chain log level 3 zstdcli 4943259 4875136
114 silesia.tar explicit params level 4 zstdcli 4839202 4814531
115 github silesia.tar level -5 level 5 zstdcli 234744 4723284
116 github silesia.tar level -5 with dict level 6 zstdcli 48718 4673591
117 github silesia.tar level -3 level 7 zstdcli 222611 4608342
118 github silesia.tar level -3 with dict level 9 zstdcli 47395 4554700
119 github silesia.tar level -1 level 13 zstdcli 178575 4491706
120 github silesia.tar level -1 with dict level 16 zstdcli 45170 4381281
121 github silesia.tar level 0 level 19 zstdcli 138397 4281518
122 github silesia.tar level 0 with dict no source size zstdcli 43170 4875132
123 github silesia.tar level 1 long distance mode zstdcli 145457 4866975
124 github silesia.tar level 1 with dict multithreaded zstdcli 43682 4875136
125 github silesia.tar level 3 multithreaded long distance mode zstdcli 138397 4866975
126 github silesia.tar level 3 with dict small window log zstdcli 43170 7130434
127 github silesia.tar level 4 small hash log zstdcli 138144 6587841
128 github silesia.tar level 4 with dict small chain log zstdcli 43306 4943259
129 github silesia.tar level 5 explicit params zstdcli 137106 4839202
130 github silesia.tar level 5 with dict uncompressed literals zstdcli 40938 5158134
131 github silesia.tar level 6 uncompressed literals optimal zstdcli 137108 4321098
132 github silesia.tar level 6 with dict huffman literals zstdcli 40632 5347560
133 github silesia.tar level 7 multithreaded with advanced params zstdcli 137108 5158134
134 github level 7 with dict level -5 zstdcli 40766 207285
135 github level 9 level -5 with dict zstdcli 137108 48718
136 github level 9 with dict level -3 zstdcli 41326 192643
137 github level 13 level -3 with dict zstdcli 135717 47395
138 github level 13 with dict level -1 zstdcli 41716 177568
139 github level 16 level -1 with dict zstdcli 135717 45170
140 github level 16 with dict level 0 zstdcli 39577 138397
141 github level 19 level 0 with dict zstdcli 135717 43170
142 github level 19 with dict level 1 zstdcli 39576 144450
143 github long distance mode level 1 with dict zstdcli 138397 43682
144 github multithreaded level 3 zstdcli 138397
145 github multithreaded long distance mode level 3 with dict zstdcli 138397 43170
146 github small window log level 4 zstdcli 138397 138144
147 github small hash log level 4 with dict zstdcli 137467 43306
148 github small chain log level 5 zstdcli 138314 137106
149 github explicit params level 5 with dict zstdcli 136140 40938
150 silesia github level -5 level 6 advanced one pass zstdcli 7152294 137108
151 silesia github level -3 level 6 with dict advanced one pass zstdcli 6789969 40632
152 silesia github level -1 level 7 advanced one pass zstdcli 6191548 137108
153 silesia github level 0 level 7 with dict advanced one pass zstdcli 4862377 40766
154 silesia github level 1 level 9 advanced one pass zstdcli 5318036 137108
155 silesia github level 3 level 9 with dict advanced one pass zstdcli 4862377 41326
156 silesia github level 4 level 13 advanced one pass zstdcli 4800629 135717
157 silesia github level 5 level 13 with dict advanced one pass zstdcli 4710178 41716
158 silesia github level 6 level 16 advanced one pass zstdcli 4659996 135717
159 silesia github level 7 level 16 with dict advanced one pass zstdcli 4596234 39577
160 silesia github level 9 level 19 advanced one pass zstdcli 4543862 135717
161 silesia github level 13 level 19 with dict advanced one pass zstdcli 4482073 39576
162 silesia github level 16 long distance mode advanced one pass zstdcli 4377391 138397
163 silesia github level 19 multithreaded advanced one pass zstdcli 4293262 138397
164 silesia github no source size multithreaded long distance mode advanced one pass zstdcli 4862377 138397
165 silesia github long distance mode small window log advanced one pass zstdcli 4853389 138397
166 silesia github multithreaded small hash log advanced one pass zstdcli 4862377 137467
167 silesia github multithreaded long distance mode small chain log advanced one pass zstdcli 4853389 138314
168 silesia github small window log explicit params advanced one pass zstdcli 7126386 136140
169 silesia github small hash log uncompressed literals advanced one pass zstdcli 6554898 169004
170 silesia github small chain log uncompressed literals optimal advanced one pass zstdcli 4931093 158824
171 silesia github explicit params huffman literals advanced one pass zstdcli 4815369 144450
172 silesia.tar github level -5 multithreaded with advanced params advanced one pass zstdcli 7160438 169004
173 silesia.tar silesia level -3 level -5 advanced one pass 6789024 6737567
174 silesia.tar silesia level -1 level -3 advanced one pass 6195462 6444663
175 silesia.tar silesia level 0 level -1 advanced one pass 4875008 6178442
176 silesia.tar silesia level 1 level 0 advanced one pass 5339697 4862377
177 silesia.tar silesia level 3 level 1 advanced one pass 4875008 5313144
178 silesia.tar silesia level 4 level 3 advanced one pass 4813507 4862377
179 silesia.tar silesia level 5 level 4 advanced one pass 4722235 4800629
180 silesia.tar silesia level 6 level 5 advanced one pass 4672194 4710178
181 silesia.tar silesia level 7 level 6 advanced one pass 4606658 4659996
182 silesia.tar silesia level 9 level 7 advanced one pass 4554098 4596234
183 silesia.tar silesia level 13 level 9 advanced one pass 4491702 4543862
184 silesia.tar silesia level 16 level 13 advanced one pass 4381277 4482073
185 silesia.tar silesia level 19 level 16 advanced one pass 4281514 4377391
186 silesia.tar silesia no source size level 19 advanced one pass 4875008 4293262
187 silesia.tar silesia long distance mode no source size advanced one pass 4861218 4862377
188 silesia.tar silesia multithreaded long distance mode advanced one pass 4874631 4853389
189 silesia.tar silesia multithreaded long distance mode multithreaded advanced one pass 4860683 4862377
190 silesia.tar silesia small window log multithreaded long distance mode advanced one pass 7130394 4853389
191 silesia.tar silesia small hash log small window log advanced one pass 6587833 7126386
192 silesia.tar silesia small chain log small hash log advanced one pass 4943255 6554898
193 silesia.tar silesia explicit params small chain log advanced one pass 4829974 4931093
194 github silesia level -5 explicit params advanced one pass 232744 4815369
195 github silesia level -5 with dict uncompressed literals advanced one pass 46718 5155424
196 github silesia level -3 uncompressed literals optimal advanced one pass 220611 4325427
197 github silesia level -3 with dict huffman literals advanced one pass 45395 5326210
198 github silesia level -1 multithreaded with advanced params advanced one pass 176575 5155424
199 github silesia.tar level -1 with dict level -5 advanced one pass 43170 6738558
200 github silesia.tar level 0 level -3 advanced one pass 136397 6446362
201 github silesia.tar level 0 with dict level -1 advanced one pass 41170 6186038
202 github silesia.tar level 1 level 0 advanced one pass 143457 4875008
203 github silesia.tar level 1 with dict level 1 advanced one pass 41682 5334825
204 github silesia.tar level 3 advanced one pass 136397 4875008
205 github silesia.tar level 3 with dict level 4 advanced one pass 41170 4813507
206 github silesia.tar level 4 level 5 advanced one pass 136144 4722235
207 github silesia.tar level 4 with dict level 6 advanced one pass 41306 4672194
208 github silesia.tar level 5 level 7 advanced one pass 135106 4606658
209 github silesia.tar level 5 with dict level 9 advanced one pass 38938 4554098
210 github silesia.tar level 6 level 13 advanced one pass 135108 4491702
211 github silesia.tar level 6 with dict level 16 advanced one pass 38632 4381277
212 github silesia.tar level 7 level 19 advanced one pass 135108 4281514
213 github silesia.tar level 7 with dict no source size advanced one pass 38766 4875008
214 github silesia.tar level 9 long distance mode advanced one pass 135108 4861218
215 github silesia.tar level 9 with dict multithreaded advanced one pass 39326 4874631
216 github silesia.tar level 13 multithreaded long distance mode advanced one pass 133717 4860683
217 github silesia.tar level 13 with dict small window log advanced one pass 39716 7130394
218 github silesia.tar level 16 small hash log advanced one pass 133717 6587833
219 github silesia.tar level 16 with dict small chain log advanced one pass 37577 4943255
220 github silesia.tar level 19 explicit params advanced one pass 133717 4829974
221 github silesia.tar level 19 with dict uncompressed literals advanced one pass 37576 5157992
222 github silesia.tar no source size uncompressed literals optimal advanced one pass 136397 4321094
223 github silesia.tar long distance mode huffman literals advanced one pass 136397 5347283
224 github silesia.tar multithreaded multithreaded with advanced params advanced one pass 136397 5158545
225 github multithreaded long distance mode level -5 advanced one pass 136397 205285
226 github small window log level -5 with dict advanced one pass 136397 46718
227 github small hash log level -3 advanced one pass 135467 190643
228 github small chain log level -3 with dict advanced one pass 136314 45395
229 github explicit params level -1 advanced one pass 137670 175568
230 silesia github level -5 level -1 with dict advanced one pass small out advanced one pass 7152294 43170
231 silesia github level -3 level 0 advanced one pass small out advanced one pass 6789969 136397
232 silesia github level -1 level 0 with dict advanced one pass small out advanced one pass 6191548 41170
233 silesia github level 0 level 1 advanced one pass small out advanced one pass 4862377 142450
234 silesia github level 1 level 1 with dict advanced one pass small out advanced one pass 5318036 41682
235 silesia github level 3 advanced one pass small out advanced one pass 4862377 136397
236 silesia github level 4 level 3 with dict advanced one pass small out advanced one pass 4800629 41170
237 silesia github level 5 level 4 advanced one pass small out advanced one pass 4710178 136144
238 silesia github level 6 level 4 with dict advanced one pass small out advanced one pass 4659996 41306
239 silesia github level 7 level 5 advanced one pass small out advanced one pass 4596234 135106
240 silesia github level 9 level 5 with dict advanced one pass small out advanced one pass 4543862 38938
241 silesia github level 13 level 6 advanced one pass small out advanced one pass 4482073 135108
242 silesia github level 16 level 6 with dict advanced one pass small out advanced one pass 4377391 38632
243 silesia github level 19 level 7 advanced one pass small out advanced one pass 4293262 135108
244 silesia github no source size level 7 with dict advanced one pass small out advanced one pass 4862377 38766
245 silesia github long distance mode level 9 advanced one pass small out advanced one pass 4853389 135108
246 silesia github multithreaded level 9 with dict advanced one pass small out advanced one pass 4862377 39326
247 silesia github multithreaded long distance mode level 13 advanced one pass small out advanced one pass 4853389 133717
248 silesia github small window log level 13 with dict advanced one pass small out advanced one pass 7126386 39716
249 silesia github small hash log level 16 advanced one pass small out advanced one pass 6554898 133717
250 silesia github small chain log level 16 with dict advanced one pass small out advanced one pass 4931093 37577
251 silesia github explicit params level 19 advanced one pass small out advanced one pass 4815369 133717
252 silesia.tar github level -5 level 19 with dict advanced one pass small out advanced one pass 7160438 37576
253 silesia.tar github level -3 no source size advanced one pass small out advanced one pass 6789024 136397
254 silesia.tar github level -1 long distance mode advanced one pass small out advanced one pass 6195462 136397
255 silesia.tar github level 0 multithreaded advanced one pass small out advanced one pass 4875008 136397
256 silesia.tar github level 1 multithreaded long distance mode advanced one pass small out advanced one pass 5339697 136397
257 silesia.tar github level 3 small window log advanced one pass small out advanced one pass 4875008 136397
258 silesia.tar github level 4 small hash log advanced one pass small out advanced one pass 4813507 135467
259 silesia.tar github level 5 small chain log advanced one pass small out advanced one pass 4722235 136314
260 silesia.tar github level 6 explicit params advanced one pass small out advanced one pass 4672194 137670
261 silesia.tar github level 7 uncompressed literals advanced one pass small out advanced one pass 4606658 167004
262 silesia.tar github level 9 uncompressed literals optimal advanced one pass small out advanced one pass 4554098 156824
263 silesia.tar github level 13 huffman literals advanced one pass small out advanced one pass 4491702 142450
264 silesia.tar github level 16 multithreaded with advanced params advanced one pass small out advanced one pass 4381277 167004
265 silesia.tar silesia level 19 level -5 advanced one pass small out 4281514 6737567
266 silesia.tar silesia no source size level -3 advanced one pass small out 4875008 6444663
267 silesia.tar silesia long distance mode level -1 advanced one pass small out 4861218 6178442
268 silesia.tar silesia multithreaded level 0 advanced one pass small out 4874631 4862377
269 silesia.tar silesia multithreaded long distance mode level 1 advanced one pass small out 4860683 5313144
270 silesia.tar silesia small window log level 3 advanced one pass small out 7130394 4862377
271 silesia.tar silesia small hash log level 4 advanced one pass small out 6587833 4800629
272 silesia.tar silesia small chain log level 5 advanced one pass small out 4943255 4710178
273 silesia.tar silesia explicit params level 6 advanced one pass small out 4829974 4659996
274 github silesia level -5 level 7 advanced one pass small out 232744 4596234
275 github silesia level -5 with dict level 9 advanced one pass small out 46718 4543862
276 github silesia level -3 level 13 advanced one pass small out 220611 4482073
277 github silesia level -3 with dict level 16 advanced one pass small out 45395 4377391
278 github silesia level -1 level 19 advanced one pass small out 176575 4293262
279 github silesia level -1 with dict no source size advanced one pass small out 43170 4862377
280 github silesia level 0 long distance mode advanced one pass small out 136397 4853389
281 github silesia level 0 with dict multithreaded advanced one pass small out 41170 4862377
282 github silesia level 1 multithreaded long distance mode advanced one pass small out 143457 4853389
283 github silesia level 1 with dict small window log advanced one pass small out 41682 7126386
284 github silesia level 3 small hash log advanced one pass small out 136397 6554898
285 github silesia level 3 with dict small chain log advanced one pass small out 41170 4931093
286 github silesia level 4 explicit params advanced one pass small out 136144 4815369
287 github silesia level 4 with dict uncompressed literals advanced one pass small out 41306 5155424
288 github silesia level 5 uncompressed literals optimal advanced one pass small out 135106 4325427
289 github silesia level 5 with dict huffman literals advanced one pass small out 38938 5326210
290 github silesia level 6 multithreaded with advanced params advanced one pass small out 135108 5155424
291 github silesia.tar level 6 with dict level -5 advanced one pass small out 38632 6738558
292 github silesia.tar level 7 level -3 advanced one pass small out 135108 6446362
293 github silesia.tar level 7 with dict level -1 advanced one pass small out 38766 6186038
294 github silesia.tar level 9 level 0 advanced one pass small out 135108 4875008
295 github silesia.tar level 9 with dict level 1 advanced one pass small out 39326 5334825
296 github silesia.tar level 13 level 3 advanced one pass small out 133717 4875008
297 github silesia.tar level 13 with dict level 4 advanced one pass small out 39716 4813507
298 github silesia.tar level 16 level 5 advanced one pass small out 133717 4722235
299 github silesia.tar level 16 with dict level 6 advanced one pass small out 37577 4672194
300 github silesia.tar level 19 level 7 advanced one pass small out 133717 4606658
301 github silesia.tar level 19 with dict level 9 advanced one pass small out 37576 4554098
302 github silesia.tar no source size level 13 advanced one pass small out 136397 4491702
303 github silesia.tar long distance mode level 16 advanced one pass small out 136397 4381277
304 github silesia.tar multithreaded level 19 advanced one pass small out 136397 4281514
305 github silesia.tar multithreaded long distance mode no source size advanced one pass small out 136397 4875008
306 github silesia.tar small window log long distance mode advanced one pass small out 136397 4861218
307 github silesia.tar small hash log multithreaded advanced one pass small out 135467 4874631
308 github silesia.tar small chain log multithreaded long distance mode advanced one pass small out 136314 4860683
309 github silesia.tar explicit params small window log advanced one pass small out 137670 7130394
310 silesia silesia.tar level -5 small hash log advanced streaming advanced one pass small out 7152294 6587833
311 silesia silesia.tar level -3 small chain log advanced streaming advanced one pass small out 6789973 4943255
312 silesia silesia.tar level -1 explicit params advanced streaming advanced one pass small out 6191549 4829974
313 silesia silesia.tar level 0 uncompressed literals advanced streaming advanced one pass small out 4862377 5157992
314 silesia silesia.tar level 1 uncompressed literals optimal advanced streaming advanced one pass small out 5318036 4321094
315 silesia silesia.tar level 3 huffman literals advanced streaming advanced one pass small out 4862377 5347283
316 silesia silesia.tar level 4 multithreaded with advanced params advanced streaming advanced one pass small out 4800629 5158545
317 silesia github level 5 level -5 advanced streaming advanced one pass small out 4710178 205285
318 silesia github level 6 level -5 with dict advanced streaming advanced one pass small out 4659996 46718
319 silesia github level 7 level -3 advanced streaming advanced one pass small out 4596234 190643
320 silesia github level 9 level -3 with dict advanced streaming advanced one pass small out 4543862 45395
321 silesia github level 13 level -1 advanced streaming advanced one pass small out 4482073 175568
322 silesia github level 16 level -1 with dict advanced streaming advanced one pass small out 4377391 43170
323 silesia github level 19 level 0 advanced streaming advanced one pass small out 4293262 136397
324 silesia github no source size level 0 with dict advanced streaming advanced one pass small out 4862341 41170
325 silesia github long distance mode level 1 advanced streaming advanced one pass small out 4853389 142450
326 silesia github multithreaded level 1 with dict advanced streaming advanced one pass small out 4862377 41682
327 silesia github multithreaded long distance mode level 3 advanced streaming advanced one pass small out 4853389 136397
328 silesia github small window log level 3 with dict advanced streaming advanced one pass small out 7126389 41170
329 silesia github small hash log level 4 advanced streaming advanced one pass small out 6554898 136144
330 silesia github small chain log level 4 with dict advanced streaming advanced one pass small out 4931093 41306
331 silesia github explicit params level 5 advanced streaming advanced one pass small out 4815380 135106
332 silesia.tar github level -5 level 5 with dict advanced streaming advanced one pass small out 7160440 38938
333 silesia.tar github level -3 level 6 advanced streaming advanced one pass small out 6789026 135108
334 silesia.tar github level -1 level 6 with dict advanced streaming advanced one pass small out 6195465 38632
335 silesia.tar github level 0 level 7 advanced streaming advanced one pass small out 4875010 135108
336 silesia.tar github level 1 level 7 with dict advanced streaming advanced one pass small out 5339701 38766
337 silesia.tar github level 3 level 9 advanced streaming advanced one pass small out 4875010 135108
338 silesia.tar github level 4 level 9 with dict advanced streaming advanced one pass small out 4813507 39326
339 silesia.tar github level 5 level 13 advanced streaming advanced one pass small out 4722240 133717
340 silesia.tar github level 6 level 13 with dict advanced streaming advanced one pass small out 4672203 39716
341 silesia.tar github level 7 level 16 advanced streaming advanced one pass small out 4606658 133717
342 silesia.tar github level 9 level 16 with dict advanced streaming advanced one pass small out 4554105 37577
343 silesia.tar github level 13 level 19 advanced streaming advanced one pass small out 4491703 133717
344 silesia.tar github level 16 level 19 with dict advanced streaming advanced one pass small out 4381277 37576
345 silesia.tar github level 19 no source size advanced streaming advanced one pass small out 4281514 136397
346 silesia.tar github no source size long distance mode advanced streaming advanced one pass small out 4875006 136397
347 silesia.tar github long distance mode multithreaded advanced streaming advanced one pass small out 4861218 136397
348 silesia.tar github multithreaded multithreaded long distance mode advanced streaming advanced one pass small out 4875132 136397
349 silesia.tar github multithreaded long distance mode small window log advanced streaming advanced one pass small out 4866971 136397
350 silesia.tar github small window log small hash log advanced streaming advanced one pass small out 7130394 135467
351 silesia.tar github small hash log small chain log advanced streaming advanced one pass small out 6587834 136314
352 silesia.tar github small chain log explicit params advanced streaming advanced one pass small out 4943260 137670
353 silesia.tar github explicit params uncompressed literals advanced streaming advanced one pass small out 4830002 167004
354 github level -5 uncompressed literals optimal advanced streaming advanced one pass small out 232744 156824
355 github level -5 with dict huffman literals advanced streaming advanced one pass small out 46718 142450
356 github level -3 multithreaded with advanced params advanced streaming advanced one pass small out 220611 167004
357 github silesia level -3 with dict level -5 advanced streaming 45395 6882466
358 github silesia level -1 level -3 advanced streaming 176575 6568358
359 github silesia level -1 with dict level -1 advanced streaming 43170 6183385
360 github silesia level 0 advanced streaming 136397 4862377
361 github silesia level 0 with dict level 1 advanced streaming 41170 5314109
362 github silesia level 1 level 3 advanced streaming 143457 4862377
363 github silesia level 1 with dict level 4 advanced streaming 41682 4800629
364 github silesia level 3 level 5 advanced streaming 136397 4710178
365 github silesia level 3 with dict level 6 advanced streaming 41170 4659996
366 github silesia level 4 level 7 advanced streaming 136144 4596234
367 github silesia level 4 with dict level 9 advanced streaming 41306 4543862
368 github silesia level 5 level 13 advanced streaming 135106 4482073
369 github silesia level 5 with dict level 16 advanced streaming 38938 4377391
370 github silesia level 6 level 19 advanced streaming 135108 4293262
371 github silesia level 6 with dict no source size advanced streaming 38632 4862341
372 github silesia level 7 long distance mode advanced streaming 135108 4853389
373 github silesia level 7 with dict multithreaded advanced streaming 38766 4862377
374 github silesia level 9 multithreaded long distance mode advanced streaming 135108 4853389
375 github silesia level 9 with dict small window log advanced streaming 39326 7126389
376 github silesia level 13 small hash log advanced streaming 133717 6554898
377 github silesia level 13 with dict small chain log advanced streaming 39716 4931093
378 github silesia level 16 explicit params advanced streaming 133717 4815380
379 github silesia level 16 with dict uncompressed literals advanced streaming 37577 5155424
380 github silesia level 19 uncompressed literals optimal advanced streaming 133717 4325427
381 github silesia level 19 with dict huffman literals advanced streaming 37576 5331110
382 github silesia no source size multithreaded with advanced params advanced streaming 136397 5155424
383 github silesia.tar long distance mode level -5 advanced streaming 136397 6982738
384 github silesia.tar multithreaded level -3 advanced streaming 136397 6641264
385 github silesia.tar multithreaded long distance mode level -1 advanced streaming 136397 6190789
386 github silesia.tar small window log level 0 advanced streaming 136397 4875010
387 github silesia.tar small hash log level 1 advanced streaming 135467 5336879
388 github silesia.tar small chain log level 3 advanced streaming 136314 4875010
389 github silesia.tar explicit params level 4 advanced streaming 137670 4813507
390 silesia silesia.tar level -5 level 5 old streaming advanced streaming 7152294 4722240
391 silesia silesia.tar level -3 level 6 old streaming advanced streaming 6789973 4672203
392 silesia silesia.tar level -1 level 7 old streaming advanced streaming 6191549 4606658
393 silesia silesia.tar level 0 level 9 old streaming advanced streaming 4862377 4554105
394 silesia silesia.tar level 1 level 13 old streaming advanced streaming 5318036 4491703
395 silesia silesia.tar level 3 level 16 old streaming advanced streaming 4862377 4381277
396 silesia silesia.tar level 4 level 19 old streaming advanced streaming 4800629 4281514
397 silesia silesia.tar level 5 no source size old streaming advanced streaming 4710178 4875006
398 silesia silesia.tar level 6 long distance mode old streaming advanced streaming 4659996 4861218
399 silesia silesia.tar level 7 multithreaded old streaming advanced streaming 4596234 4875132
400 silesia silesia.tar level 9 multithreaded long distance mode old streaming advanced streaming 4543862 4866971
401 silesia silesia.tar level 13 small window log old streaming advanced streaming 4482073 7130394
402 silesia silesia.tar level 16 small hash log old streaming advanced streaming 4377391 6587834
403 silesia silesia.tar level 19 small chain log old streaming advanced streaming 4293262 4943260
404 silesia silesia.tar no source size explicit params old streaming advanced streaming 4862341 4830002
405 silesia.tar level -5 uncompressed literals old streaming advanced streaming 7160440 5157995
406 silesia.tar level -3 uncompressed literals optimal old streaming advanced streaming 6789026 4321094
407 silesia.tar level -1 huffman literals old streaming advanced streaming 6195465 5352306
408 silesia.tar level 0 multithreaded with advanced params old streaming advanced streaming 4875010 5158130
409 silesia.tar github level 1 level -5 old streaming advanced streaming 5339701 205285
410 silesia.tar github level 3 level -5 with dict old streaming advanced streaming 4875010 46718
411 silesia.tar github level 4 level -3 old streaming advanced streaming 4813507 190643
412 silesia.tar github level 5 level -3 with dict old streaming advanced streaming 4722240 45395
413 silesia.tar github level 6 level -1 old streaming advanced streaming 4672203 175568
414 silesia.tar github level 7 level -1 with dict old streaming advanced streaming 4606658 43170
415 silesia.tar github level 9 level 0 old streaming advanced streaming 4554105 136397
416 silesia.tar github level 13 level 0 with dict old streaming advanced streaming 4491703 41170
417 silesia.tar github level 16 level 1 old streaming advanced streaming 4381277 142450
418 silesia.tar github level 19 level 1 with dict old streaming advanced streaming 4281514 41682
419 silesia.tar github no source size level 3 old streaming advanced streaming 4875006 136397
420 github level -5 level 3 with dict old streaming advanced streaming 232744 41170
421 github level -5 with dict level 4 old streaming advanced streaming 46718 136144
422 github level -3 level 4 with dict old streaming advanced streaming 220611 41306
423 github level -3 with dict level 5 old streaming advanced streaming 45395 135106
424 github level -1 level 5 with dict old streaming advanced streaming 176575 38938
425 github level -1 with dict level 6 old streaming advanced streaming 43170 135108
426 github level 0 level 6 with dict old streaming advanced streaming 136397 38632
427 github level 0 with dict level 7 old streaming advanced streaming 41170 135108
428 github level 1 level 7 with dict old streaming advanced streaming 143457 38766
429 github level 1 with dict level 9 old streaming advanced streaming 41682 135108
430 github level 3 level 9 with dict old streaming advanced streaming 136397 39326
431 github level 3 with dict level 13 old streaming advanced streaming 41170 133717
432 github level 4 level 13 with dict old streaming advanced streaming 136144 39716
433 github level 4 with dict level 16 old streaming advanced streaming 41306 133717
434 github level 5 level 16 with dict old streaming advanced streaming 135106 37577
435 github level 5 with dict level 19 old streaming advanced streaming 38938 133717
436 github level 6 level 19 with dict old streaming advanced streaming 135108 37576
437 github level 6 with dict no source size old streaming advanced streaming 38632 136397
438 github level 7 long distance mode old streaming advanced streaming 135108 136397
439 github level 7 with dict multithreaded old streaming advanced streaming 38766 136397
440 github level 9 multithreaded long distance mode old streaming advanced streaming 135108 136397
441 github level 9 with dict small window log old streaming advanced streaming 39326 136397
442 github level 13 small hash log old streaming advanced streaming 133717 135467
443 github level 13 with dict small chain log old streaming advanced streaming 39716 136314
444 github level 16 explicit params old streaming advanced streaming 133717 137670
445 github level 16 with dict uncompressed literals old streaming advanced streaming 37577 167004
446 github level 19 uncompressed literals optimal old streaming advanced streaming 133717 156824
447 github level 19 with dict huffman literals old streaming advanced streaming 37576 142450
448 github no source size multithreaded with advanced params old streaming advanced streaming 141003 167004
449 silesia level -5 old streaming 6882466
450 silesia level -3 old streaming 6568358
451 silesia level -1 old streaming 6183385
452 silesia level 0 old streaming 4862377
453 silesia level 1 old streaming 5314109
454 silesia level 3 old streaming 4862377
455 silesia level 4 old streaming 4800629
456 silesia level 5 old streaming 4710178
457 silesia level 6 old streaming 4659996
458 silesia level 7 old streaming 4596234
459 silesia level 9 old streaming 4543862
460 silesia level 13 old streaming 4482073
461 silesia level 16 old streaming 4377391
462 silesia level 19 old streaming 4293262
463 silesia no source size old streaming 4862341
464 silesia long distance mode old streaming 12000408
465 silesia multithreaded old streaming 12000408
466 silesia multithreaded long distance mode old streaming 12000408
467 silesia small window log old streaming 12000408
468 silesia small hash log old streaming 12000408
469 silesia small chain log old streaming 12000408
470 silesia explicit params old streaming 12000408
471 silesia uncompressed literals old streaming 4862377
472 silesia uncompressed literals optimal old streaming 4293262
473 silesia huffman literals old streaming 6183385
474 silesia multithreaded with advanced params old streaming 12000408
475 silesia.tar level -5 old streaming 6982738
476 silesia.tar level -3 old streaming 6641264
477 silesia.tar level -1 old streaming 6190789
478 silesia.tar level 0 old streaming 4875010
479 silesia.tar level 1 old streaming 5336879
480 silesia.tar level 3 old streaming 4875010
481 silesia.tar level 4 old streaming 4813507
482 silesia.tar level 5 old streaming 4722240
483 silesia.tar level 6 old streaming 4672203
484 silesia.tar level 7 old streaming 4606658
485 silesia.tar level 9 old streaming 4554105
486 silesia.tar level 13 old streaming 4491703
487 silesia.tar level 16 old streaming 4381277
488 silesia.tar level 19 old streaming 4281514
489 silesia.tar no source size old streaming 4875006
490 silesia.tar long distance mode old streaming 12022046
491 silesia.tar multithreaded old streaming 12022046
492 silesia.tar multithreaded long distance mode old streaming 12022046
493 silesia.tar small window log old streaming 12022046
494 silesia.tar small hash log old streaming 12022046
495 silesia.tar small chain log old streaming 12022046
496 silesia.tar explicit params old streaming 12022046
497 silesia.tar uncompressed literals old streaming 4875010
498 silesia.tar uncompressed literals optimal old streaming 4281514
499 silesia.tar huffman literals old streaming 6190789
500 silesia.tar multithreaded with advanced params old streaming 12022046
501 github level -5 old streaming 205285
502 github level -5 with dict old streaming 46718
503 github level -3 old streaming 190643
504 github level -3 with dict old streaming 45395
505 github level -1 old streaming 175568
506 github level -1 with dict old streaming 43170
507 github level 0 old streaming 136397
508 github level 0 with dict old streaming 41170
509 github level 1 old streaming 142450
510 github level 1 with dict old streaming 41682
511 github level 3 old streaming 136397
512 github level 3 with dict old streaming 41170
513 github level 4 old streaming 136144
514 github level 4 with dict old streaming 41306
515 github level 5 old streaming 135106
516 github level 5 with dict old streaming 38938
517 github level 6 old streaming 135108
518 github level 6 with dict old streaming 38632
519 github level 7 old streaming 135108
520 github level 7 with dict old streaming 38766
521 github level 9 old streaming 135108
522 github level 9 with dict old streaming 39326
523 github level 13 old streaming 133717
524 github level 13 with dict old streaming 39716
525 github level 16 old streaming 133717
526 github level 16 with dict old streaming 37577
527 github level 19 old streaming 133717
528 github level 19 with dict old streaming 37576
529 github no source size old streaming 141003
530 github long distance mode old streaming 412933
531 github multithreaded old streaming 412933
532 github multithreaded long distance mode old streaming 412933
533 github small window log old streaming 412933
534 github small hash log old streaming 412933
535 github small chain log old streaming 412933
536 github explicit params old streaming 412933
537 github uncompressed literals old streaming 136397
538 github uncompressed literals optimal old streaming 133717
539 github huffman literals old streaming 175568
540 github multithreaded with advanced params old streaming 412933
541 silesia level -5 old streaming advanced 6882466
542 silesia level -3 old streaming advanced 6568358
543 silesia level -1 old streaming advanced 6183385
544 silesia level 0 old streaming advanced 4862377
545 silesia level 1 old streaming advanced 5314109
546 silesia level 3 old streaming advanced 4862377
547 silesia level 4 old streaming advanced 4800629
548 silesia level 5 old streaming advanced 4710178
549 silesia level 6 old streaming advanced 4659996
550 silesia level 7 old streaming advanced 4596234
551 silesia level 9 old streaming advanced 4543862
552 silesia level 13 old streaming advanced 4482073
553 silesia level 16 old streaming advanced 4377391
554 silesia level 19 old streaming advanced 4293262
555 silesia no source size old streaming advanced 4862341
556 silesia long distance mode old streaming advanced 12000408
557 silesia multithreaded old streaming advanced 12000408
558 silesia multithreaded long distance mode old streaming advanced 12000408
559 silesia small window log old streaming advanced 12000408
560 silesia small hash log old streaming advanced 12000408
561 silesia small chain log old streaming advanced 12000408
562 silesia explicit params old streaming advanced 12000408
563 silesia uncompressed literals old streaming advanced 4862377
564 silesia uncompressed literals optimal old streaming advanced 4293262
565 silesia huffman literals old streaming advanced 6183385
566 silesia multithreaded with advanced params old streaming advanced 12000408
567 silesia.tar level -5 old streaming advanced 6982738
568 silesia.tar level -3 old streaming advanced 6641264
569 silesia.tar level -1 old streaming advanced 6190789
570 silesia.tar level 0 old streaming advanced 4875010
571 silesia.tar level 1 old streaming advanced 5336879
572 silesia.tar level 3 old streaming advanced 4875010
573 silesia.tar level 4 old streaming advanced 4813507
574 silesia.tar level 5 old streaming advanced 4722240
575 silesia.tar level 6 old streaming advanced 4672203
576 silesia.tar level 7 old streaming advanced 4606658
577 silesia.tar level 9 old streaming advanced 4554105
578 silesia.tar level 13 old streaming advanced 4491703
579 silesia.tar level 16 old streaming advanced 4381277
580 silesia.tar level 19 old streaming advanced 4281514
581 silesia.tar no source size old streaming advanced 4875006
582 silesia.tar long distance mode old streaming advanced 12022046
583 silesia.tar multithreaded old streaming advanced 12022046
584 silesia.tar multithreaded long distance mode old streaming advanced 12022046
585 silesia.tar small window log old streaming advanced 12022046
586 silesia.tar small hash log old streaming advanced 12022046
587 silesia.tar small chain log old streaming advanced 12022046
588 silesia.tar explicit params old streaming advanced 12022046
589 silesia.tar uncompressed literals old streaming advanced 4875010
590 silesia.tar uncompressed literals optimal old streaming advanced 4281514
591 silesia.tar huffman literals old streaming advanced 6190789
592 silesia.tar multithreaded with advanced params old streaming advanced 12022046
593 github level -5 old streaming advanced 205285
594 github level -5 with dict old streaming advanced 46718
595 github level -3 old streaming advanced 190643
596 github level -3 with dict old streaming advanced 45395
597 github level -1 old streaming advanced 175568
598 github level -1 with dict old streaming advanced 43170
599 github level 0 old streaming advanced 136397
600 github level 0 with dict old streaming advanced 41170
601 github level 1 old streaming advanced 142450
602 github level 1 with dict old streaming advanced 41682
603 github level 3 old streaming advanced 136397
604 github level 3 with dict old streaming advanced 41170
605 github level 4 old streaming advanced 136144
606 github level 4 with dict old streaming advanced 41306
607 github level 5 old streaming advanced 135106
608 github level 5 with dict old streaming advanced 38938
609 github level 6 old streaming advanced 135108
610 github level 6 with dict old streaming advanced 38632
611 github level 7 old streaming advanced 135108
612 github level 7 with dict old streaming advanced 38766
613 github level 9 old streaming advanced 135108
614 github level 9 with dict old streaming advanced 39326
615 github level 13 old streaming advanced 133717
616 github level 13 with dict old streaming advanced 39716
617 github level 16 old streaming advanced 133717
618 github level 16 with dict old streaming advanced 37577
619 github level 19 old streaming advanced 133717
620 github level 19 with dict old streaming advanced 37576
621 github no source size old streaming advanced 141003
622 github long distance mode old streaming advanced 412933
623 github multithreaded old streaming advanced 412933
624 github multithreaded long distance mode old streaming advanced 412933
625 github small window log old streaming advanced 412933
626 github small hash log old streaming advanced 412933
627 github small chain log old streaming advanced 412933
628 github explicit params old streaming advanced 412933
629 github uncompressed literals old streaming advanced 136397
630 github uncompressed literals optimal old streaming advanced 133717
631 github huffman literals old streaming advanced 175568
632 github multithreaded with advanced params old streaming advanced 412933
633 silesia level -5 old streaming cdcit 6882466
634 silesia level -3 old streaming cdcit 6568358
635 silesia level -1 old streaming cdcit 6183385
636 silesia level 0 old streaming cdcit 4862377
637 silesia level 1 old streaming cdcit 5314109
638 silesia level 3 old streaming cdcit 4862377
639 silesia level 4 old streaming cdcit 4800629
640 silesia level 5 old streaming cdcit 4710178
641 silesia level 6 old streaming cdcit 4659996
642 silesia level 7 old streaming cdcit 4596234
643 silesia level 9 old streaming cdcit 4543862
644 silesia level 13 old streaming cdcit 4482073
645 silesia level 16 old streaming cdcit 4377391
646 silesia level 19 old streaming cdcit 4293262
647 silesia no source size old streaming cdcit 4862341
648 silesia long distance mode old streaming cdcit 12000408
649 silesia multithreaded old streaming cdcit 12000408
650 silesia multithreaded long distance mode old streaming cdcit 12000408
651 silesia small window log old streaming cdcit 12000408
652 silesia small hash log old streaming cdcit 12000408
653 silesia small chain log old streaming cdcit 12000408
654 silesia explicit params old streaming cdcit 12000408
655 silesia uncompressed literals old streaming cdcit 4862377
656 silesia uncompressed literals optimal old streaming cdcit 4293262
657 silesia huffman literals old streaming cdcit 6183385
658 silesia multithreaded with advanced params old streaming cdcit 12000408
659 silesia.tar level -5 old streaming cdcit 6982738
660 silesia.tar level -3 old streaming cdcit 6641264
661 silesia.tar level -1 old streaming cdcit 6190789
662 silesia.tar level 0 old streaming cdcit 4875010
663 silesia.tar level 1 old streaming cdcit 5336879
664 silesia.tar level 3 old streaming cdcit 4875010
665 silesia.tar level 4 old streaming cdcit 4813507
666 silesia.tar level 5 old streaming cdcit 4722240
667 silesia.tar level 6 old streaming cdcit 4672203
668 silesia.tar level 7 old streaming cdcit 4606658
669 silesia.tar level 9 old streaming cdcit 4554105
670 silesia.tar level 13 old streaming cdcit 4491703
671 silesia.tar level 16 old streaming cdcit 4381277
672 silesia.tar level 19 old streaming cdcit 4281514
673 silesia.tar no source size old streaming cdcit 4875006
674 silesia.tar long distance mode old streaming cdcit 12022046
675 silesia.tar multithreaded old streaming cdcit 12022046
676 silesia.tar multithreaded long distance mode old streaming cdcit 12022046
677 silesia.tar small window log old streaming cdcit 12022046
678 silesia.tar small hash log old streaming cdcit 12022046
679 silesia.tar small chain log old streaming cdcit 12022046
680 silesia.tar explicit params old streaming cdcit 12022046
681 silesia.tar uncompressed literals old streaming cdcit 4875010
682 silesia.tar uncompressed literals optimal old streaming cdcit 4281514
683 silesia.tar huffman literals old streaming cdcit 6190789
684 silesia.tar multithreaded with advanced params old streaming cdcit 12022046
685 github level -5 old streaming cdcit 205285
686 github level -5 with dict old streaming cdcit 46718
687 github level -3 old streaming cdcit 190643
688 github level -3 with dict old streaming cdcit 45395
689 github level -1 old streaming cdcit 175568
690 github level -1 with dict old streaming cdcit 43170
691 github level 0 old streaming cdcit 136397
692 github level 0 with dict old streaming cdcit 41170
693 github level 1 old streaming cdcit 142450
694 github level 1 with dict old streaming cdcit 41682
695 github level 3 old streaming cdcit 136397
696 github level 3 with dict old streaming cdcit 41170
697 github level 4 old streaming cdcit 136144
698 github level 4 with dict old streaming cdcit 41306
699 github level 5 old streaming cdcit 135106
700 github level 5 with dict old streaming cdcit 38938
701 github level 6 old streaming cdcit 135108
702 github level 6 with dict old streaming cdcit 38632
703 github level 7 old streaming cdcit 135108
704 github level 7 with dict old streaming cdcit 38766
705 github level 9 old streaming cdcit 135108
706 github level 9 with dict old streaming cdcit 39326
707 github level 13 old streaming cdcit 133717
708 github level 13 with dict old streaming cdcit 39716
709 github level 16 old streaming cdcit 133717
710 github level 16 with dict old streaming cdcit 37577
711 github level 19 old streaming cdcit 133717
712 github level 19 with dict old streaming cdcit 37576
713 github no source size old streaming cdcit 141003
714 github long distance mode old streaming cdcit 412933
715 github multithreaded old streaming cdcit 412933
716 github multithreaded long distance mode old streaming cdcit 412933
717 github small window log old streaming cdcit 412933
718 github small hash log old streaming cdcit 412933
719 github small chain log old streaming cdcit 412933
720 github explicit params old streaming cdcit 412933
721 github uncompressed literals old streaming cdcit 136397
722 github uncompressed literals optimal old streaming cdcit 133717
723 github huffman literals old streaming cdcit 175568
724 github multithreaded with advanced params old streaming cdcit 412933
725 silesia level -5 old streaming advanced cdict 6882466
726 silesia level -3 old streaming advanced cdict 6568358
727 silesia level -1 old streaming advanced cdict 6183385
728 silesia level 0 old streaming advanced cdict 4862377
729 silesia level 1 old streaming advanced cdict 5314109
730 silesia level 3 old streaming advanced cdict 4862377
731 silesia level 4 old streaming advanced cdict 4800629
732 silesia level 5 old streaming advanced cdict 4710178
733 silesia level 6 old streaming advanced cdict 4659996
734 silesia level 7 old streaming advanced cdict 4596234
735 silesia level 9 old streaming advanced cdict 4543862
736 silesia level 13 old streaming advanced cdict 4482073
737 silesia level 16 old streaming advanced cdict 4377391
738 silesia level 19 old streaming advanced cdict 4293262
739 silesia no source size old streaming advanced cdict 4862341
740 silesia long distance mode old streaming advanced cdict 12000408
741 silesia multithreaded old streaming advanced cdict 12000408
742 silesia multithreaded long distance mode old streaming advanced cdict 12000408
743 silesia small window log old streaming advanced cdict 12000408
744 silesia small hash log old streaming advanced cdict 12000408
745 silesia small chain log old streaming advanced cdict 12000408
746 silesia explicit params old streaming advanced cdict 12000408
747 silesia uncompressed literals old streaming advanced cdict 4862377
748 silesia uncompressed literals optimal old streaming advanced cdict 4293262
749 silesia huffman literals old streaming advanced cdict 6183385
750 silesia multithreaded with advanced params old streaming advanced cdict 12000408
751 silesia.tar level -5 old streaming advanced cdict 6982738
752 silesia.tar level -3 old streaming advanced cdict 6641264
753 silesia.tar level -1 old streaming advanced cdict 6190789
754 silesia.tar level 0 old streaming advanced cdict 4875010
755 silesia.tar level 1 old streaming advanced cdict 5336879
756 silesia.tar level 3 old streaming advanced cdict 4875010
757 silesia.tar level 4 old streaming advanced cdict 4813507
758 silesia.tar level 5 old streaming advanced cdict 4722240
759 silesia.tar level 6 old streaming advanced cdict 4672203
760 silesia.tar level 7 old streaming advanced cdict 4606658
761 silesia.tar level 9 old streaming advanced cdict 4554105
762 silesia.tar level 13 old streaming advanced cdict 4491703
763 silesia.tar level 16 old streaming advanced cdict 4381277
764 silesia.tar level 19 old streaming advanced cdict 4281514
765 silesia.tar no source size old streaming advanced cdict 4875006
766 silesia.tar long distance mode old streaming advanced cdict 12022046
767 silesia.tar multithreaded old streaming advanced cdict 12022046
768 silesia.tar multithreaded long distance mode old streaming advanced cdict 12022046
769 silesia.tar small window log old streaming advanced cdict 12022046
770 silesia.tar small hash log old streaming advanced cdict 12022046
771 silesia.tar small chain log old streaming advanced cdict 12022046
772 silesia.tar explicit params old streaming advanced cdict 12022046
773 silesia.tar uncompressed literals old streaming advanced cdict 4875010
774 silesia.tar uncompressed literals optimal old streaming advanced cdict 4281514
775 silesia.tar huffman literals old streaming advanced cdict 6190789
776 silesia.tar multithreaded with advanced params old streaming advanced cdict 12022046
777 github level -5 old streaming advanced cdict 205285
778 github level -5 with dict old streaming advanced cdict 46718
779 github level -3 old streaming advanced cdict 190643
780 github level -3 with dict old streaming advanced cdict 45395
781 github level -1 old streaming advanced cdict 175568
782 github level -1 with dict old streaming advanced cdict 43170
783 github level 0 old streaming advanced cdict 136397
784 github level 0 with dict old streaming advanced cdict 41170
785 github level 1 old streaming advanced cdict 142450
786 github level 1 with dict old streaming advanced cdict 41682
787 github level 3 old streaming advanced cdict 136397
788 github level 3 with dict old streaming advanced cdict 41170
789 github level 4 old streaming advanced cdict 136144
790 github level 4 with dict old streaming advanced cdict 41306
791 github level 5 old streaming advanced cdict 135106
792 github level 5 with dict old streaming advanced cdict 38938
793 github level 6 old streaming advanced cdict 135108
794 github level 6 with dict old streaming advanced cdict 38632
795 github level 7 old streaming advanced cdict 135108
796 github level 7 with dict old streaming advanced cdict 38766
797 github level 9 old streaming advanced cdict 135108
798 github level 9 with dict old streaming advanced cdict 39326
799 github level 13 old streaming advanced cdict 133717
800 github level 13 with dict old streaming advanced cdict 39716
801 github level 16 old streaming advanced cdict 133717
802 github level 16 with dict old streaming advanced cdict 37577
803 github level 19 old streaming advanced cdict 133717
804 github level 19 with dict old streaming advanced cdict 37576
805 github no source size old streaming advanced cdict 141003
806 github long distance mode old streaming advanced cdict 412933
807 github multithreaded old streaming advanced cdict 412933
808 github multithreaded long distance mode old streaming advanced cdict 412933
809 github small window log old streaming advanced cdict 412933
810 github small hash log old streaming advanced cdict 412933
811 github small chain log old streaming advanced cdict 412933
812 github explicit params old streaming advanced cdict 412933
813 github uncompressed literals old streaming advanced cdict 136397
814 github uncompressed literals optimal old streaming advanced cdict 133717
815 github huffman literals old streaming advanced cdict 175568
816 github multithreaded with advanced params old streaming advanced cdict 412933
+3 -3
View File
@@ -93,9 +93,9 @@ static size_t cctxParamRoundTripTest(void* resultBuff, size_t resultBuffCapacity
int const cLevel = h32 % maxClevel;
/* Set parameters */
CHECK_Z( ZSTD_CCtxParam_setParameter(cctxParams, ZSTD_c_compressionLevel, cLevel) );
CHECK_Z( ZSTD_CCtxParam_setParameter(cctxParams, ZSTD_c_nbWorkers, 2) );
CHECK_Z( ZSTD_CCtxParam_setParameter(cctxParams, ZSTD_c_overlapLog, 5) );
CHECK_Z( ZSTD_CCtxParams_setParameter(cctxParams, ZSTD_c_compressionLevel, cLevel) );
CHECK_Z( ZSTD_CCtxParams_setParameter(cctxParams, ZSTD_c_nbWorkers, 2) );
CHECK_Z( ZSTD_CCtxParams_setParameter(cctxParams, ZSTD_c_overlapLog, 5) );
/* Apply parameters */
+1
View File
@@ -31,6 +31,7 @@ static const void *symbols[] = {
&ZSTD_getFrameContentSize,
&ZSTD_maxCLevel,
&ZSTD_compressBound,
&ZSTD_decompressBound,
&ZSTD_isError,
&ZSTD_getErrorName,
&ZSTD_createCCtx,
+24 -17
View File
@@ -344,6 +344,20 @@ static int basicUnitTests(U32 seed, double compressibility)
DISPLAYLEVEL(3, "OK (%u bytes) \n", (unsigned)(cstreamSize + cdictSize));
}
/* context size functions */
DISPLAYLEVEL(3, "test%3i : estimate CStream size using CCtxParams : ", testNb++);
{ ZSTD_CCtx_params* const params = ZSTD_createCCtxParams();
size_t cstreamSize, cctxSize;
CHECK_Z( ZSTD_CCtxParams_setParameter(params, ZSTD_c_compressionLevel, 19) );
cstreamSize = ZSTD_estimateCStreamSize_usingCCtxParams(params);
CHECK_Z(cstreamSize);
cctxSize = ZSTD_estimateCCtxSize_usingCCtxParams(params);
CHECK_Z(cctxSize);
if (cstreamSize <= cctxSize + 2 * ZSTD_BLOCKSIZE_MAX) goto _output_error;
ZSTD_freeCCtxParams(params);
DISPLAYLEVEL(3, "OK \n");
}
DISPLAYLEVEL(3, "test%3i : check actual CStream size : ", testNb++);
{ size_t const s = ZSTD_sizeof_CStream(zc);
if (ZSTD_isError(s)) goto _output_error;
@@ -495,7 +509,7 @@ static int basicUnitTests(U32 seed, double compressibility)
/* _srcSize compression test */
DISPLAYLEVEL(3, "test%3i : compress_srcSize %u bytes : ", testNb++, COMPRESSIBLE_NOISE_LENGTH);
ZSTD_initCStream_srcSize(zc, 1, CNBufferSize);
CHECK_Z( ZSTD_initCStream_srcSize(zc, 1, CNBufferSize) );
outBuff.dst = (char*)(compressedBuffer);
outBuff.size = compressedBufferSize;
outBuff.pos = 0;
@@ -503,11 +517,14 @@ static int basicUnitTests(U32 seed, double compressibility)
inBuff.size = CNBufferSize;
inBuff.pos = 0;
CHECK_Z( ZSTD_compressStream(zc, &outBuff, &inBuff) );
if (inBuff.pos != inBuff.size) goto _output_error; /* entire input should be consumed */
{ size_t const r = ZSTD_endStream(zc, &outBuff);
if (r != 0) goto _output_error; } /* error, or some data not flushed */
{ unsigned long long origSize = ZSTD_findDecompressedSize(outBuff.dst, outBuff.pos);
if ((size_t)origSize != CNBufferSize) goto _output_error; } /* exact original size must be present */
CHECK(inBuff.pos != inBuff.size, "Entire input should be consumed");
{ size_t const r = ZSTD_endStream(zc, &outBuff);
CHECK(r != 0, "Error or some data not flushed (ret=%zu)", r);
}
{ unsigned long long origSize = ZSTD_findDecompressedSize(outBuff.dst, outBuff.pos);
CHECK(origSize == ZSTD_CONTENTSIZE_UNKNOWN, "Unknown!");
CHECK((size_t)origSize != CNBufferSize, "Exact original size must be present (got %llu)", origSize);
}
DISPLAYLEVEL(3, "OK (%u bytes : %.2f%%)\n", (unsigned)cSize, (double)cSize/COMPRESSIBLE_NOISE_LENGTH*100);
/* wrong _srcSize compression test */
@@ -1703,7 +1720,7 @@ static size_t setCCtxParameter(ZSTD_CCtx* zc, ZSTD_CCtx_params* cctxParams,
int useOpaqueAPI)
{
if (useOpaqueAPI) {
return ZSTD_CCtxParam_setParameter(cctxParams, param, value);
return ZSTD_CCtxParams_setParameter(cctxParams, param, value);
} else {
return ZSTD_CCtx_setParameter(zc, param, value);
}
@@ -1930,16 +1947,6 @@ static int fuzzerTests_newAPI(U32 seed, int nbTests, int startTest,
} else {
CHECK_Z( ZSTD_CCtx_loadDictionary_byReference(zc, dict, dictSize) );
}
if (dict && dictSize) {
/* test that compression parameters are rejected (correctly) after loading a non-NULL dictionary */
if (opaqueAPI) {
size_t const setError = ZSTD_CCtx_setParametersUsingCCtxParams(zc, cctxParams);
CHECK(!ZSTD_isError(setError), "ZSTD_CCtx_setParametersUsingCCtxParams should have failed");
} else {
size_t const setError = ZSTD_CCtx_setParameter(zc, ZSTD_c_windowLog, cParams.windowLog-1);
CHECK(!ZSTD_isError(setError), "ZSTD_CCtx_setParameter should have failed");
}
}
} else {
CHECK_Z( ZSTD_CCtx_refPrefix(zc, dict, dictSize) );
}