Merge pull request #4136 from facebook/preSplit

Block splitter
This commit is contained in:
Yann Collet
2024-10-24 13:17:36 -07:00
committed by GitHub
22 changed files with 1083 additions and 736 deletions
+18 -3
View File
@@ -156,15 +156,30 @@ jobs:
make libc6install
CFLAGS="-O3 -m32" FUZZER_FLAGS="--long-tests" make uasan-fuzztest
clang-asan-ubsan-fuzz32:
clang-asan-fuzz32:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
- name: clang + ASan + UBSan + Fuzz Test 32bit
- name: clang + ASan + Fuzz Test 32bit
run: |
sudo apt-get -qqq update
make libc6install
CC=clang CFLAGS="-O3 -m32" FUZZER_FLAGS="--long-tests" make uasan-fuzztest
CC=clang CFLAGS="-O3 -m32" FUZZER_FLAGS="--long-tests" make asan-fuzztest
# The following test seems to have issues on github CI specifically,
# it does not provide the `__mulodi4` instruction emulation
# required for signed 64-bit multiplication.
# Replaced by asan-only test (above)
#
# clang-asan-ubsan-fuzz32:
# runs-on: ubuntu-20.04
# steps:
# - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
# - name: clang + ASan + UBSan + Fuzz Test 32bit
# run: |
# sudo apt-get -qqq update
# make libc6install
# CC=clang CFLAGS="-O3 -m32" FUZZER_FLAGS="--long-tests" make uasan-fuzztest
asan-ubsan-regression:
runs-on: ubuntu-20.04
+4 -4
View File
@@ -232,10 +232,10 @@ jobs:
-Dbin_tests=true \
-Dbin_contrib=true \
-Ddefault_library=both \
build/meson builddir
ninja -C builddir/
meson test -C builddir/ --print-errorlogs
meson install -C builddir --destdir staging/
build/meson mesonBuild
ninja -C mesonBuild/
meson test -C mesonBuild/ --print-errorlogs
meson install -C mesonBuild --destdir staging/
meson-mingw-cross-compilation:
runs-on: ubuntu-latest
+19 -1
View File
@@ -145,7 +145,7 @@ clean:
$(Q)$(MAKE) -C contrib/largeNbDicts $@ > $(VOID)
$(Q)$(MAKE) -C contrib/externalSequenceProducer $@ > $(VOID)
$(Q)$(RM) zstd$(EXT) zstdmt$(EXT) tmp*
$(Q)$(RM) -r lz4 cmakebuild install
$(Q)$(RM) -r lz4 cmakebuild mesonbuild install
@echo Cleaning completed
#------------------------------------------------------------------------------
@@ -415,6 +415,24 @@ cmakebuild:
$(CMAKE) --build cmakebuild --target install -- -j V=1
cd cmakebuild; ctest -V -L Medium
MESON ?= meson
NINJA ?= ninja
.PHONY: mesonbuild
mesonbuild:
$(MESON) setup \
--buildtype=debugoptimized \
-Db_lundef=false \
-Dauto_features=enabled \
-Dbin_programs=true \
-Dbin_tests=true \
-Dbin_contrib=true \
-Ddefault_library=both \
build/meson mesonbuild
$(NINJA) -C mesonbuild/
$(MESON) test -C mesonbuild/ --print-errorlogs
$(MESON) install -C mesonbuild --destdir staging/
.PHONY: c89build gnu90build c99build gnu99build c11build bmix64build bmix32build bmi32build staticAnalyze
c89build: clean
$(CC) -v
+1
View File
@@ -170,6 +170,7 @@
<ClCompile Include="..\..\..\lib\compress\zstd_compress_literals.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_compress_sequences.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_compress_superblock.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_preSplit.c" />
<ClCompile Include="..\..\..\lib\compress\zstdmt_compress.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_fast.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_double_fast.c" />
+1
View File
@@ -170,6 +170,7 @@
<ClCompile Include="..\..\..\lib\compress\zstd_compress_literals.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_compress_sequences.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_compress_superblock.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_preSplit.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_fast.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_double_fast.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_lazy.c" />
@@ -34,6 +34,7 @@
<ClCompile Include="..\..\..\lib\compress\zstd_compress_literals.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_compress_sequences.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_compress_superblock.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_preSplit.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_fast.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_double_fast.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_lazy.c" />
+1
View File
@@ -34,6 +34,7 @@
<ClCompile Include="..\..\..\lib\compress\zstd_compress_literals.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_compress_sequences.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_compress_superblock.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_preSplit.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_fast.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_double_fast.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_lazy.c" />
+1
View File
@@ -35,6 +35,7 @@
<ClCompile Include="..\..\..\lib\compress\zstd_compress_literals.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_compress_sequences.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_compress_superblock.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_preSplit.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_fast.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_double_fast.c" />
<ClCompile Include="..\..\..\lib\compress\zstd_lazy.c" />
+1
View File
@@ -30,6 +30,7 @@ libzstd_sources = [join_paths(zstd_rootdir, 'lib/common/entropy_common.c'),
join_paths(zstd_rootdir, 'lib/compress/zstd_compress_literals.c'),
join_paths(zstd_rootdir, 'lib/compress/zstd_compress_sequences.c'),
join_paths(zstd_rootdir, 'lib/compress/zstd_compress_superblock.c'),
join_paths(zstd_rootdir, 'lib/compress/zstd_preSplit.c'),
join_paths(zstd_rootdir, 'lib/compress/zstdmt_compress.c'),
join_paths(zstd_rootdir, 'lib/compress/zstd_fast.c'),
join_paths(zstd_rootdir, 'lib/compress/zstd_double_fast.c'),
+1
View File
@@ -69,6 +69,7 @@
#include "compress/zstd_compress_literals.c"
#include "compress/zstd_compress_sequences.c"
#include "compress/zstd_compress_superblock.c"
#include "compress/zstd_preSplit.c"
#include "compress/zstd_compress.c"
#include "compress/zstd_double_fast.c"
#include "compress/zstd_fast.c"
+6
View File
@@ -278,6 +278,12 @@
* Alignment check
*****************************************************************/
/* @return 1 if @u is a 2^n value, 0 otherwise
* useful to check a value is valid for alignment restrictions */
MEM_STATIC int ZSTD_isPower2(size_t u) {
return (u & (u-1)) == 0;
}
/* this test was initially positioned in mem.h,
* but this file is removed (or replaced) for linux kernel
* so it's now hosted in compiler.h,
+95 -45
View File
@@ -137,11 +137,12 @@ ZSTD_CCtx* ZSTD_initStaticCCtx(void* workspace, size_t workspaceSize)
ZSTD_cwksp_move(&cctx->workspace, &ws);
cctx->staticSize = workspaceSize;
/* statically sized space. entropyWorkspace never moves (but prev/next block swap places) */
if (!ZSTD_cwksp_check_available(&cctx->workspace, ENTROPY_WORKSPACE_SIZE + 2 * sizeof(ZSTD_compressedBlockState_t))) return NULL;
/* statically sized space. tmpWorkspace never moves (but prev/next block swap places) */
if (!ZSTD_cwksp_check_available(&cctx->workspace, TMP_WORKSPACE_SIZE + 2 * sizeof(ZSTD_compressedBlockState_t))) return NULL;
cctx->blockState.prevCBlock = (ZSTD_compressedBlockState_t*)ZSTD_cwksp_reserve_object(&cctx->workspace, sizeof(ZSTD_compressedBlockState_t));
cctx->blockState.nextCBlock = (ZSTD_compressedBlockState_t*)ZSTD_cwksp_reserve_object(&cctx->workspace, sizeof(ZSTD_compressedBlockState_t));
cctx->entropyWorkspace = (U32*)ZSTD_cwksp_reserve_object(&cctx->workspace, ENTROPY_WORKSPACE_SIZE);
cctx->tmpWorkspace = ZSTD_cwksp_reserve_object(&cctx->workspace, TMP_WORKSPACE_SIZE);
cctx->tmpWkspSize = TMP_WORKSPACE_SIZE;
cctx->bmi2 = ZSTD_cpuid_bmi2(ZSTD_cpuid());
return cctx;
}
@@ -883,7 +884,7 @@ size_t ZSTD_CCtxParams_setParameter(ZSTD_CCtx_params* CCtxParams,
value = ZSTDMT_JOBSIZE_MIN;
FORWARD_IF_ERROR(ZSTD_cParam_clampBounds(param, &value), "");
assert(value >= 0);
CCtxParams->jobSize = value;
CCtxParams->jobSize = (size_t)value;
return CCtxParams->jobSize;
#endif
@@ -1002,7 +1003,8 @@ size_t ZSTD_CCtxParams_setParameter(ZSTD_CCtx_params* CCtxParams,
case ZSTD_c_maxBlockSize:
if (value!=0) /* 0 ==> default */
BOUNDCHECK(ZSTD_c_maxBlockSize, value);
CCtxParams->maxBlockSize = value;
assert(value>=0);
CCtxParams->maxBlockSize = (size_t)value;
return CCtxParams->maxBlockSize;
case ZSTD_c_searchForExternalRepcodes:
@@ -1630,7 +1632,8 @@ ZSTD_compressionParameters ZSTD_getCParamsFromCCtxParams(
{
ZSTD_compressionParameters cParams;
if (srcSizeHint == ZSTD_CONTENTSIZE_UNKNOWN && CCtxParams->srcSizeHint > 0) {
srcSizeHint = CCtxParams->srcSizeHint;
assert(CCtxParams->srcSizeHint>=0);
srcSizeHint = (U64)CCtxParams->srcSizeHint;
}
cParams = ZSTD_getCParams_internal(CCtxParams->compressionLevel, srcSizeHint, dictSize, mode);
if (CCtxParams->ldmParams.enableLdm == ZSTD_ps_enable) cParams.windowLog = ZSTD_LDM_DEFAULT_WINDOW_LOG;
@@ -1659,14 +1662,14 @@ ZSTD_sizeof_matchState(const ZSTD_compressionParameters* const cParams,
+ hSize * sizeof(U32)
+ h3Size * sizeof(U32);
size_t const optPotentialSpace =
ZSTD_cwksp_aligned_alloc_size((MaxML+1) * sizeof(U32))
+ ZSTD_cwksp_aligned_alloc_size((MaxLL+1) * sizeof(U32))
+ ZSTD_cwksp_aligned_alloc_size((MaxOff+1) * sizeof(U32))
+ ZSTD_cwksp_aligned_alloc_size((1<<Litbits) * sizeof(U32))
+ ZSTD_cwksp_aligned_alloc_size(ZSTD_OPT_SIZE * sizeof(ZSTD_match_t))
+ ZSTD_cwksp_aligned_alloc_size(ZSTD_OPT_SIZE * sizeof(ZSTD_optimal_t));
ZSTD_cwksp_aligned64_alloc_size((MaxML+1) * sizeof(U32))
+ ZSTD_cwksp_aligned64_alloc_size((MaxLL+1) * sizeof(U32))
+ ZSTD_cwksp_aligned64_alloc_size((MaxOff+1) * sizeof(U32))
+ ZSTD_cwksp_aligned64_alloc_size((1<<Litbits) * sizeof(U32))
+ ZSTD_cwksp_aligned64_alloc_size(ZSTD_OPT_SIZE * sizeof(ZSTD_match_t))
+ ZSTD_cwksp_aligned64_alloc_size(ZSTD_OPT_SIZE * sizeof(ZSTD_optimal_t));
size_t const lazyAdditionalSpace = ZSTD_rowMatchFinderUsed(cParams->strategy, useRowMatchFinder)
? ZSTD_cwksp_aligned_alloc_size(hSize)
? ZSTD_cwksp_aligned64_alloc_size(hSize)
: 0;
size_t const optSpace = (forCCtx && (cParams->strategy >= ZSTD_btopt))
? optPotentialSpace
@@ -1704,16 +1707,16 @@ static size_t ZSTD_estimateCCtxSize_usingCCtxParams_internal(
size_t const blockSize = MIN(ZSTD_resolveMaxBlockSize(maxBlockSize), windowSize);
size_t const maxNbSeq = ZSTD_maxNbSeq(blockSize, cParams->minMatch, useSequenceProducer);
size_t const tokenSpace = ZSTD_cwksp_alloc_size(WILDCOPY_OVERLENGTH + blockSize)
+ ZSTD_cwksp_aligned_alloc_size(maxNbSeq * sizeof(seqDef))
+ ZSTD_cwksp_aligned64_alloc_size(maxNbSeq * sizeof(seqDef))
+ 3 * ZSTD_cwksp_alloc_size(maxNbSeq * sizeof(BYTE));
size_t const entropySpace = ZSTD_cwksp_alloc_size(ENTROPY_WORKSPACE_SIZE);
size_t const tmpWorkSpace = ZSTD_cwksp_alloc_size(TMP_WORKSPACE_SIZE);
size_t const blockStateSpace = 2 * ZSTD_cwksp_alloc_size(sizeof(ZSTD_compressedBlockState_t));
size_t const matchStateSize = ZSTD_sizeof_matchState(cParams, useRowMatchFinder, /* enableDedicatedDictSearch */ 0, /* forCCtx */ 1);
size_t const ldmSpace = ZSTD_ldm_getTableSize(*ldmParams);
size_t const maxNbLdmSeq = ZSTD_ldm_getMaxNbSeq(*ldmParams, blockSize);
size_t const ldmSeqSpace = ldmParams->enableLdm == ZSTD_ps_enable ?
ZSTD_cwksp_aligned_alloc_size(maxNbLdmSeq * sizeof(rawSeq)) : 0;
ZSTD_cwksp_aligned64_alloc_size(maxNbLdmSeq * sizeof(rawSeq)) : 0;
size_t const bufferSpace = ZSTD_cwksp_alloc_size(buffInSize)
@@ -1723,12 +1726,12 @@ static size_t ZSTD_estimateCCtxSize_usingCCtxParams_internal(
size_t const maxNbExternalSeq = ZSTD_sequenceBound(blockSize);
size_t const externalSeqSpace = useSequenceProducer
? ZSTD_cwksp_aligned_alloc_size(maxNbExternalSeq * sizeof(ZSTD_Sequence))
? ZSTD_cwksp_aligned64_alloc_size(maxNbExternalSeq * sizeof(ZSTD_Sequence))
: 0;
size_t const neededSpace =
cctxSpace +
entropySpace +
tmpWorkSpace +
blockStateSpace +
ldmSpace +
ldmSeqSpace +
@@ -2029,7 +2032,7 @@ ZSTD_reset_matchState(ZSTD_matchState_t* ms,
ZSTD_advanceHashSalt(ms);
} else {
/* When we are not salting we want to always memset the memory */
ms->tagTable = (BYTE*) ZSTD_cwksp_reserve_aligned(ws, tagTableSize);
ms->tagTable = (BYTE*) ZSTD_cwksp_reserve_aligned64(ws, tagTableSize);
ZSTD_memset(ms->tagTable, 0, tagTableSize);
ms->hashSalt = 0;
}
@@ -2043,12 +2046,12 @@ ZSTD_reset_matchState(ZSTD_matchState_t* ms,
/* opt parser space */
if ((forWho == ZSTD_resetTarget_CCtx) && (cParams->strategy >= ZSTD_btopt)) {
DEBUGLOG(4, "reserving optimal parser space");
ms->opt.litFreq = (unsigned*)ZSTD_cwksp_reserve_aligned(ws, (1<<Litbits) * sizeof(unsigned));
ms->opt.litLengthFreq = (unsigned*)ZSTD_cwksp_reserve_aligned(ws, (MaxLL+1) * sizeof(unsigned));
ms->opt.matchLengthFreq = (unsigned*)ZSTD_cwksp_reserve_aligned(ws, (MaxML+1) * sizeof(unsigned));
ms->opt.offCodeFreq = (unsigned*)ZSTD_cwksp_reserve_aligned(ws, (MaxOff+1) * sizeof(unsigned));
ms->opt.matchTable = (ZSTD_match_t*)ZSTD_cwksp_reserve_aligned(ws, ZSTD_OPT_SIZE * sizeof(ZSTD_match_t));
ms->opt.priceTable = (ZSTD_optimal_t*)ZSTD_cwksp_reserve_aligned(ws, ZSTD_OPT_SIZE * sizeof(ZSTD_optimal_t));
ms->opt.litFreq = (unsigned*)ZSTD_cwksp_reserve_aligned64(ws, (1<<Litbits) * sizeof(unsigned));
ms->opt.litLengthFreq = (unsigned*)ZSTD_cwksp_reserve_aligned64(ws, (MaxLL+1) * sizeof(unsigned));
ms->opt.matchLengthFreq = (unsigned*)ZSTD_cwksp_reserve_aligned64(ws, (MaxML+1) * sizeof(unsigned));
ms->opt.offCodeFreq = (unsigned*)ZSTD_cwksp_reserve_aligned64(ws, (MaxOff+1) * sizeof(unsigned));
ms->opt.matchTable = (ZSTD_match_t*)ZSTD_cwksp_reserve_aligned64(ws, ZSTD_OPT_SIZE * sizeof(ZSTD_match_t));
ms->opt.priceTable = (ZSTD_optimal_t*)ZSTD_cwksp_reserve_aligned64(ws, ZSTD_OPT_SIZE * sizeof(ZSTD_optimal_t));
}
ms->cParams = *cParams;
@@ -2164,15 +2167,16 @@ static size_t ZSTD_resetCCtx_internal(ZSTD_CCtx* zc,
DEBUGLOG(5, "reserving object space");
/* Statically sized space.
* entropyWorkspace never moves,
* tmpWorkspace never moves,
* though prev/next block swap places */
assert(ZSTD_cwksp_check_available(ws, 2 * sizeof(ZSTD_compressedBlockState_t)));
zc->blockState.prevCBlock = (ZSTD_compressedBlockState_t*) ZSTD_cwksp_reserve_object(ws, sizeof(ZSTD_compressedBlockState_t));
RETURN_ERROR_IF(zc->blockState.prevCBlock == NULL, memory_allocation, "couldn't allocate prevCBlock");
zc->blockState.nextCBlock = (ZSTD_compressedBlockState_t*) ZSTD_cwksp_reserve_object(ws, sizeof(ZSTD_compressedBlockState_t));
RETURN_ERROR_IF(zc->blockState.nextCBlock == NULL, memory_allocation, "couldn't allocate nextCBlock");
zc->entropyWorkspace = (U32*) ZSTD_cwksp_reserve_object(ws, ENTROPY_WORKSPACE_SIZE);
RETURN_ERROR_IF(zc->entropyWorkspace == NULL, memory_allocation, "couldn't allocate entropyWorkspace");
zc->tmpWorkspace = ZSTD_cwksp_reserve_object(ws, TMP_WORKSPACE_SIZE);
RETURN_ERROR_IF(zc->tmpWorkspace == NULL, memory_allocation, "couldn't allocate tmpWorkspace");
zc->tmpWkspSize = TMP_WORKSPACE_SIZE;
} }
ZSTD_cwksp_clear(ws);
@@ -2205,15 +2209,15 @@ static size_t ZSTD_resetCCtx_internal(ZSTD_CCtx* zc,
needsIndexReset,
ZSTD_resetTarget_CCtx), "");
zc->seqStore.sequencesStart = (seqDef*)ZSTD_cwksp_reserve_aligned(ws, maxNbSeq * sizeof(seqDef));
zc->seqStore.sequencesStart = (seqDef*)ZSTD_cwksp_reserve_aligned64(ws, maxNbSeq * sizeof(seqDef));
/* ldm hash table */
if (params->ldmParams.enableLdm == ZSTD_ps_enable) {
/* TODO: avoid memset? */
size_t const ldmHSize = ((size_t)1) << params->ldmParams.hashLog;
zc->ldmState.hashTable = (ldmEntry_t*)ZSTD_cwksp_reserve_aligned(ws, ldmHSize * sizeof(ldmEntry_t));
zc->ldmState.hashTable = (ldmEntry_t*)ZSTD_cwksp_reserve_aligned64(ws, ldmHSize * sizeof(ldmEntry_t));
ZSTD_memset(zc->ldmState.hashTable, 0, ldmHSize * sizeof(ldmEntry_t));
zc->ldmSequences = (rawSeq*)ZSTD_cwksp_reserve_aligned(ws, maxNbLdmSeq * sizeof(rawSeq));
zc->ldmSequences = (rawSeq*)ZSTD_cwksp_reserve_aligned64(ws, maxNbLdmSeq * sizeof(rawSeq));
zc->maxNbLdmSequences = maxNbLdmSeq;
ZSTD_window_init(&zc->ldmState.window);
@@ -2225,7 +2229,7 @@ static size_t ZSTD_resetCCtx_internal(ZSTD_CCtx* zc,
size_t const maxNbExternalSeq = ZSTD_sequenceBound(blockSize);
zc->extSeqBufCapacity = maxNbExternalSeq;
zc->extSeqBuf =
(ZSTD_Sequence*)ZSTD_cwksp_reserve_aligned(ws, maxNbExternalSeq * sizeof(ZSTD_Sequence));
(ZSTD_Sequence*)ZSTD_cwksp_reserve_aligned64(ws, maxNbExternalSeq * sizeof(ZSTD_Sequence));
}
/* buffers */
@@ -2444,7 +2448,8 @@ static size_t ZSTD_resetCCtx_byCopyingCDict(ZSTD_CCtx* cctx,
}
/* Zero the hashTable3, since the cdict never fills it */
{ int const h3log = cctx->blockState.matchState.hashLog3;
assert(cctx->blockState.matchState.hashLog3 <= 31);
{ U32 const h3log = cctx->blockState.matchState.hashLog3;
size_t const h3Size = h3log ? ((size_t)1 << h3log) : 0;
assert(cdict->matchState.hashLog3 == 0);
ZSTD_memset(cctx->blockState.matchState.hashTable3, 0, h3Size * sizeof(U32));
@@ -3891,14 +3896,14 @@ ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize(seqStore_t* seqStore, ZSTD_CC
&zc->blockState.nextCBlock->entropy,
&zc->appliedParams,
entropyMetadata,
zc->entropyWorkspace, ENTROPY_WORKSPACE_SIZE), "");
zc->tmpWorkspace, zc->tmpWkspSize), "");
return ZSTD_estimateBlockSize(
seqStore->litStart, (size_t)(seqStore->lit - seqStore->litStart),
seqStore->ofCode, seqStore->llCode, seqStore->mlCode,
(size_t)(seqStore->sequences - seqStore->sequencesStart),
&zc->blockState.nextCBlock->entropy,
entropyMetadata,
zc->entropyWorkspace, ENTROPY_WORKSPACE_SIZE,
zc->tmpWorkspace, zc->tmpWkspSize,
(int)(entropyMetadata->hufMetadata.hType == set_compressed), 1);
}
@@ -4064,7 +4069,7 @@ ZSTD_compressSeqStore_singleBlock(ZSTD_CCtx* zc,
&zc->appliedParams,
op + ZSTD_blockHeaderSize, dstCapacity - ZSTD_blockHeaderSize,
srcSize,
zc->entropyWorkspace, ENTROPY_WORKSPACE_SIZE /* statically allocated in resetCCtx */,
zc->tmpWorkspace, zc->tmpWkspSize /* statically allocated in resetCCtx */,
zc->bmi2);
FORWARD_IF_ERROR(cSeqsSize, "ZSTD_entropyCompressSeqStore failed!");
@@ -4354,7 +4359,7 @@ ZSTD_compressBlock_internal(ZSTD_CCtx* zc,
&zc->appliedParams,
dst, dstCapacity,
srcSize,
zc->entropyWorkspace, ENTROPY_WORKSPACE_SIZE /* statically allocated in resetCCtx */,
zc->tmpWorkspace, zc->tmpWkspSize /* statically allocated in resetCCtx */,
zc->bmi2);
if (frame &&
@@ -4484,6 +4489,34 @@ static void ZSTD_overflowCorrectIfNeeded(ZSTD_matchState_t* ms,
}
}
#include "zstd_preSplit.h"
static size_t ZSTD_optimalBlockSize(ZSTD_CCtx* cctx, const void* src, size_t srcSize, size_t blockSizeMax, ZSTD_strategy strat, S64 savings)
{
/* note: conservatively only split full blocks (128 KB) currently.
* While it's possible to go lower, let's keep it simple for a first implementation.
* Besides, benefits of splitting are reduced when blocks are already small.
*/
if (srcSize < 128 KB || blockSizeMax < 128 KB)
return MIN(srcSize, blockSizeMax);
/* do not split incompressible data though:
* ensure a 3 bytes per full block overhead limit.
* Note: as a consequence, the first full block skips the splitting detector.
*/
if (savings < 3) return 128 KB;
/* dynamic splitting has a cpu cost for analysis,
* due to that cost it's only used for higher levels */
if (strat >= ZSTD_btopt)
return ZSTD_splitBlock(src, srcSize, blockSizeMax, split_lvl2, cctx->tmpWorkspace, cctx->tmpWkspSize);
if (strat >= ZSTD_lazy2)
return ZSTD_splitBlock(src, srcSize, blockSizeMax, split_lvl1, cctx->tmpWorkspace, cctx->tmpWkspSize);
/* blind split strategy
* heuristic value, tested as being "generally better".
* no cpu cost, but can over-split homegeneous data.
*/
return 92 KB;
}
/*! ZSTD_compress_frameChunk() :
* Compress a chunk of data into one or multiple blocks.
* All blocks will be terminated, all input will be consumed.
@@ -4496,29 +4529,31 @@ static size_t ZSTD_compress_frameChunk(ZSTD_CCtx* cctx,
const void* src, size_t srcSize,
U32 lastFrameChunk)
{
size_t blockSize = cctx->blockSize;
size_t blockSizeMax = cctx->blockSize;
size_t remaining = srcSize;
const BYTE* ip = (const BYTE*)src;
BYTE* const ostart = (BYTE*)dst;
BYTE* op = ostart;
U32 const maxDist = (U32)1 << cctx->appliedParams.cParams.windowLog;
S64 savings = (S64)cctx->consumedSrcSize - (S64)cctx->producedCSize;
assert(cctx->appliedParams.cParams.windowLog <= ZSTD_WINDOWLOG_MAX);
DEBUGLOG(4, "ZSTD_compress_frameChunk (blockSize=%u)", (unsigned)blockSize);
DEBUGLOG(4, "ZSTD_compress_frameChunk (blockSizeMax=%u)", (unsigned)blockSizeMax);
if (cctx->appliedParams.fParams.checksumFlag && srcSize)
XXH64_update(&cctx->xxhState, src, srcSize);
while (remaining) {
ZSTD_matchState_t* const ms = &cctx->blockState.matchState;
U32 const lastBlock = lastFrameChunk & (blockSize >= remaining);
size_t const blockSize = ZSTD_optimalBlockSize(cctx, ip, remaining, blockSizeMax, cctx->appliedParams.cParams.strategy, savings);
U32 const lastBlock = lastFrameChunk & (blockSize == remaining);
assert(blockSize <= remaining);
/* TODO: See 3090. We reduced MIN_CBLOCK_SIZE from 3 to 2 so to compensate we are adding
* additional 1. We need to revisit and change this logic to be more consistent */
RETURN_ERROR_IF(dstCapacity < ZSTD_blockHeaderSize + MIN_CBLOCK_SIZE + 1,
dstSize_tooSmall,
"not enough space to store compressed block");
if (remaining < blockSize) blockSize = remaining;
ZSTD_overflowCorrectIfNeeded(
ms, &cctx->workspace, &cctx->appliedParams, ip, ip + blockSize);
@@ -4556,6 +4591,21 @@ static size_t ZSTD_compress_frameChunk(ZSTD_CCtx* cctx,
}
} /* if (ZSTD_useTargetCBlockSize(&cctx->appliedParams))*/
/* @savings is employed to ensure that splitting doesn't worsen expansion of incompressible data.
* Without splitting, the maximum expansion is 3 bytes per full block.
* An adversarial input could attempt to fudge the split detector,
* and make it split incompressible data, resulting in more block headers.
* Note that, since ZSTD_COMPRESSBOUND() assumes a worst case scenario of 1KB per block,
* and the splitter never creates blocks that small (current lower limit is 8 KB),
* there is already no risk to expand beyond ZSTD_COMPRESSBOUND() limit.
* But if the goal is to not expand by more than 3-bytes per 128 KB full block,
* then yes, it becomes possible to make the block splitter oversplit incompressible data.
* Using @savings, we enforce an even more conservative condition,
* requiring the presence of enough savings (at least 3 bytes) to authorize splitting,
* otherwise only full blocks are used.
* But being conservative is fine,
* since splitting barely compressible blocks is not fruitful anyway */
savings += (S64)blockSize - (S64)cSize;
ip += blockSize;
assert(remaining >= blockSize);
@@ -5022,7 +5072,7 @@ size_t ZSTD_loadCEntropy(ZSTD_compressedBlockState_t* bs, void* workspace,
RETURN_ERROR_IF(bs->rep[u] > dictContentSize, dictionary_corrupted, "");
} } }
return dictPtr - (const BYTE*)dict;
return (size_t)(dictPtr - (const BYTE*)dict);
}
/* Dictionary format :
@@ -5145,11 +5195,11 @@ static size_t ZSTD_compressBegin_internal(ZSTD_CCtx* cctx,
cctx->blockState.prevCBlock, &cctx->blockState.matchState,
&cctx->ldmState, &cctx->workspace, &cctx->appliedParams, cdict->dictContent,
cdict->dictContentSize, cdict->dictContentType, dtlm,
ZSTD_tfp_forCCtx, cctx->entropyWorkspace)
ZSTD_tfp_forCCtx, cctx->tmpWorkspace)
: ZSTD_compress_insertDictionary(
cctx->blockState.prevCBlock, &cctx->blockState.matchState,
&cctx->ldmState, &cctx->workspace, &cctx->appliedParams, dict, dictSize,
dictContentType, dtlm, ZSTD_tfp_forCCtx, cctx->entropyWorkspace);
dictContentType, dtlm, ZSTD_tfp_forCCtx, cctx->tmpWorkspace);
FORWARD_IF_ERROR(dictID, "ZSTD_compress_insertDictionary failed");
assert(dictID <= UINT_MAX);
cctx->dictID = (U32)dictID;
@@ -6847,7 +6897,7 @@ ZSTD_compressSequences_internal(ZSTD_CCtx* cctx,
&cctx->appliedParams,
op + ZSTD_blockHeaderSize /* Leave space for block header */, dstCapacity - ZSTD_blockHeaderSize,
blockSize,
cctx->entropyWorkspace, ENTROPY_WORKSPACE_SIZE /* statically allocated in resetCCtx */,
cctx->tmpWorkspace, cctx->tmpWkspSize /* statically allocated in resetCCtx */,
cctx->bmi2);
FORWARD_IF_ERROR(compressedSeqsSize, "Compressing sequences of block failed");
DEBUGLOG(5, "Compressed sequences size: %zu", compressedSeqsSize);
+6 -3
View File
@@ -24,6 +24,7 @@
# include "zstdmt_compress.h"
#endif
#include "../common/bits.h" /* ZSTD_highbit32, ZSTD_NbCommonBytes */
#include "zstd_preSplit.h" /* ZSTD_SLIPBLOCK_WORKSPACESIZE */
#if defined (__cplusplus)
extern "C" {
@@ -376,6 +377,7 @@ struct ZSTD_CCtx_params_s {
#define COMPRESS_SEQUENCES_WORKSPACE_SIZE (sizeof(unsigned) * (MaxSeq + 2))
#define ENTROPY_WORKSPACE_SIZE (HUF_WORKSPACE_SIZE + COMPRESS_SEQUENCES_WORKSPACE_SIZE)
#define TMP_WORKSPACE_SIZE (MAX(ENTROPY_WORKSPACE_SIZE, ZSTD_SLIPBLOCK_WORKSPACESIZE))
/**
* Indicates whether this compression proceeds directly from user-provided
@@ -432,7 +434,8 @@ struct ZSTD_CCtx_s {
size_t maxNbLdmSequences;
rawSeqStore_t externSeqStore; /* Mutable reference to external sequences */
ZSTD_blockState_t blockState;
U32* entropyWorkspace; /* entropy workspace of ENTROPY_WORKSPACE_SIZE bytes */
void* tmpWorkspace; /* used as substitute of stack space - must be aligned for S64 type */
size_t tmpWkspSize;
/* Whether we are streaming or not */
ZSTD_buffered_policy_e bufferedPolicy;
@@ -798,8 +801,8 @@ ZSTD_count_2segments(const BYTE* ip, const BYTE* match,
size_t const matchLength = ZSTD_count(ip, match, vEnd);
if (match + matchLength != mEnd) return matchLength;
DEBUGLOG(7, "ZSTD_count_2segments: found a 2-parts match (current length==%zu)", matchLength);
DEBUGLOG(7, "distance from match beginning to end dictionary = %zi", mEnd - match);
DEBUGLOG(7, "distance from current pos to end buffer = %zi", iEnd - ip);
DEBUGLOG(7, "distance from match beginning to end dictionary = %i", (int)(mEnd - match));
DEBUGLOG(7, "distance from current pos to end buffer = %i", (int)(iEnd - ip));
DEBUGLOG(7, "next byte : ip==%02X, istart==%02X", ip[matchLength], *iStart);
DEBUGLOG(7, "final match length = %zu", matchLength + ZSTD_count(ip+matchLength, iStart, iEnd));
return matchLength + ZSTD_count(ip+matchLength, iStart, iEnd);
+2 -2
View File
@@ -674,7 +674,7 @@ size_t ZSTD_compressSuperBlock(ZSTD_CCtx* zc,
&zc->blockState.nextCBlock->entropy,
&zc->appliedParams,
&entropyMetadata,
zc->entropyWorkspace, ENTROPY_WORKSPACE_SIZE /* statically allocated in resetCCtx */), "");
zc->tmpWorkspace, zc->tmpWkspSize /* statically allocated in resetCCtx */), "");
return ZSTD_compressSubBlock_multi(&zc->seqStore,
zc->blockState.prevCBlock,
@@ -684,5 +684,5 @@ size_t ZSTD_compressSuperBlock(ZSTD_CCtx* zc,
dst, dstCapacity,
src, srcSize,
zc->bmi2, lastBlock,
zc->entropyWorkspace, ENTROPY_WORKSPACE_SIZE /* statically allocated in resetCCtx */);
zc->tmpWorkspace, zc->tmpWkspSize /* statically allocated in resetCCtx */);
}
+38 -14
View File
@@ -17,6 +17,7 @@
#include "../common/allocations.h" /* ZSTD_customMalloc, ZSTD_customFree */
#include "../common/zstd_internal.h"
#include "../common/portability_macros.h"
#include "../common/compiler.h" /* ZS2_isPower2 */
#if defined (__cplusplus)
extern "C" {
@@ -206,9 +207,9 @@ MEM_STATIC void ZSTD_cwksp_assert_internal_consistency(ZSTD_cwksp* ws) {
/**
* Align must be a power of 2.
*/
MEM_STATIC size_t ZSTD_cwksp_align(size_t size, size_t const align) {
MEM_STATIC size_t ZSTD_cwksp_align(size_t size, size_t align) {
size_t const mask = align - 1;
assert((align & mask) == 0);
assert(ZSTD_isPower2(align));
return (size + mask) & ~mask;
}
@@ -222,7 +223,7 @@ MEM_STATIC size_t ZSTD_cwksp_align(size_t size, size_t const align) {
* to figure out how much space you need for the matchState tables. Everything
* else is though.
*
* Do not use for sizing aligned buffers. Instead, use ZSTD_cwksp_aligned_alloc_size().
* Do not use for sizing aligned buffers. Instead, use ZSTD_cwksp_aligned64_alloc_size().
*/
MEM_STATIC size_t ZSTD_cwksp_alloc_size(size_t size) {
if (size == 0)
@@ -234,12 +235,16 @@ MEM_STATIC size_t ZSTD_cwksp_alloc_size(size_t size) {
#endif
}
MEM_STATIC size_t ZSTD_cwksp_aligned_alloc_size(size_t size, size_t alignment) {
return ZSTD_cwksp_alloc_size(ZSTD_cwksp_align(size, alignment));
}
/**
* Returns an adjusted alloc size that is the nearest larger multiple of 64 bytes.
* Used to determine the number of bytes required for a given "aligned".
*/
MEM_STATIC size_t ZSTD_cwksp_aligned_alloc_size(size_t size) {
return ZSTD_cwksp_alloc_size(ZSTD_cwksp_align(size, ZSTD_CWKSP_ALIGNMENT_BYTES));
MEM_STATIC size_t ZSTD_cwksp_aligned64_alloc_size(size_t size) {
return ZSTD_cwksp_aligned_alloc_size(size, ZSTD_CWKSP_ALIGNMENT_BYTES);
}
/**
@@ -262,7 +267,7 @@ MEM_STATIC size_t ZSTD_cwksp_slack_space_required(void) {
MEM_STATIC size_t ZSTD_cwksp_bytes_to_align_ptr(void* ptr, const size_t alignBytes) {
size_t const alignBytesMask = alignBytes - 1;
size_t const bytes = (alignBytes - ((size_t)ptr & (alignBytesMask))) & alignBytesMask;
assert((alignBytes & alignBytesMask) == 0);
assert(ZSTD_isPower2(alignBytes));
assert(bytes < alignBytes);
return bytes;
}
@@ -271,8 +276,12 @@ MEM_STATIC size_t ZSTD_cwksp_bytes_to_align_ptr(void* ptr, const size_t alignByt
* Returns the initial value for allocStart which is used to determine the position from
* which we can allocate from the end of the workspace.
*/
MEM_STATIC void* ZSTD_cwksp_initialAllocStart(ZSTD_cwksp* ws) {
return (void*)((size_t)ws->workspaceEnd & ~(ZSTD_CWKSP_ALIGNMENT_BYTES-1));
MEM_STATIC void* ZSTD_cwksp_initialAllocStart(ZSTD_cwksp* ws)
{
char* endPtr = (char*)ws->workspaceEnd;
assert(ZSTD_isPower2(ZSTD_CWKSP_ALIGNMENT_BYTES));
endPtr = endPtr - ((size_t)endPtr % ZSTD_CWKSP_ALIGNMENT_BYTES);
return (void*)endPtr;
}
/**
@@ -404,7 +413,7 @@ MEM_STATIC void* ZSTD_cwksp_reserve_aligned_init_once(ZSTD_cwksp* ws, size_t byt
{
size_t const alignedBytes = ZSTD_cwksp_align(bytes, ZSTD_CWKSP_ALIGNMENT_BYTES);
void* ptr = ZSTD_cwksp_reserve_internal(ws, alignedBytes, ZSTD_cwksp_alloc_aligned_init_once);
assert(((size_t)ptr & (ZSTD_CWKSP_ALIGNMENT_BYTES-1))== 0);
assert(((size_t)ptr & (ZSTD_CWKSP_ALIGNMENT_BYTES-1)) == 0);
if(ptr && ptr < ws->initOnceStart) {
/* We assume the memory following the current allocation is either:
* 1. Not usable as initOnce memory (end of workspace)
@@ -424,11 +433,12 @@ MEM_STATIC void* ZSTD_cwksp_reserve_aligned_init_once(ZSTD_cwksp* ws, size_t byt
/**
* Reserves and returns memory sized on and aligned on ZSTD_CWKSP_ALIGNMENT_BYTES (64 bytes).
*/
MEM_STATIC void* ZSTD_cwksp_reserve_aligned(ZSTD_cwksp* ws, size_t bytes)
MEM_STATIC void* ZSTD_cwksp_reserve_aligned64(ZSTD_cwksp* ws, size_t bytes)
{
void* ptr = ZSTD_cwksp_reserve_internal(ws, ZSTD_cwksp_align(bytes, ZSTD_CWKSP_ALIGNMENT_BYTES),
ZSTD_cwksp_alloc_aligned);
assert(((size_t)ptr & (ZSTD_CWKSP_ALIGNMENT_BYTES-1))== 0);
void* const ptr = ZSTD_cwksp_reserve_internal(ws,
ZSTD_cwksp_align(bytes, ZSTD_CWKSP_ALIGNMENT_BYTES),
ZSTD_cwksp_alloc_aligned);
assert(((size_t)ptr & (ZSTD_CWKSP_ALIGNMENT_BYTES-1)) == 0);
return ptr;
}
@@ -474,7 +484,7 @@ MEM_STATIC void* ZSTD_cwksp_reserve_table(ZSTD_cwksp* ws, size_t bytes)
#endif
assert((bytes & (ZSTD_CWKSP_ALIGNMENT_BYTES-1)) == 0);
assert(((size_t)alloc & (ZSTD_CWKSP_ALIGNMENT_BYTES-1))== 0);
assert(((size_t)alloc & (ZSTD_CWKSP_ALIGNMENT_BYTES-1)) == 0);
return alloc;
}
@@ -520,6 +530,20 @@ MEM_STATIC void* ZSTD_cwksp_reserve_object(ZSTD_cwksp* ws, size_t bytes)
return alloc;
}
/**
* with alignment control
* Note : should happen only once, at workspace first initialization
*/
MEM_STATIC void* ZSTD_cwksp_reserve_object_aligned(ZSTD_cwksp* ws, size_t byteSize, size_t alignment)
{
size_t const mask = alignment - 1;
size_t const surplus = (alignment > sizeof(void*)) ? alignment - sizeof(void*) : 0;
void* const start = ZSTD_cwksp_reserve_object(ws, byteSize + surplus);
if (start == NULL) return NULL;
if (surplus == 0) return start;
assert(ZSTD_isPower2(alignment));
return (void*)(((size_t)start + surplus) & ~mask);
}
MEM_STATIC void ZSTD_cwksp_mark_tables_dirty(ZSTD_cwksp* ws)
{
+9 -9
View File
@@ -1197,7 +1197,7 @@ ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms,
for (cur = 1; cur <= last_pos; cur++) {
const BYTE* const inr = ip + cur;
assert(cur <= ZSTD_OPT_NUM);
DEBUGLOG(7, "cPos:%zi==rPos:%u", inr-istart, cur);
DEBUGLOG(7, "cPos:%i==rPos:%u", (int)(inr-istart), cur);
/* Fix current position with one literal if cheaper */
{ U32 const litlen = opt[cur-1].litlen + 1;
@@ -1207,8 +1207,8 @@ ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms,
assert(price < 1000000000); /* overflow check */
if (price <= opt[cur].price) {
ZSTD_optimal_t const prevMatch = opt[cur];
DEBUGLOG(7, "cPos:%zi==rPos:%u : better price (%.2f<=%.2f) using literal (ll==%u) (hist:%u,%u,%u)",
inr-istart, cur, ZSTD_fCost(price), ZSTD_fCost(opt[cur].price), litlen,
DEBUGLOG(7, "cPos:%i==rPos:%u : better price (%.2f<=%.2f) using literal (ll==%u) (hist:%u,%u,%u)",
(int)(inr-istart), cur, ZSTD_fCost(price), ZSTD_fCost(opt[cur].price), litlen,
opt[cur-1].rep[0], opt[cur-1].rep[1], opt[cur-1].rep[2]);
opt[cur] = opt[cur-1];
opt[cur].litlen = litlen;
@@ -1240,8 +1240,8 @@ ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms,
}
}
} else {
DEBUGLOG(7, "cPos:%zi==rPos:%u : literal would cost more (%.2f>%.2f)",
inr-istart, cur, ZSTD_fCost(price), ZSTD_fCost(opt[cur].price));
DEBUGLOG(7, "cPos:%i==rPos:%u : literal would cost more (%.2f>%.2f)",
(int)(inr-istart), cur, ZSTD_fCost(price), ZSTD_fCost(opt[cur].price));
}
}
@@ -1284,8 +1284,8 @@ ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms,
}
{ U32 const longestML = matches[nbMatches-1].len;
DEBUGLOG(7, "cPos:%zi==rPos:%u, found %u matches, of longest ML=%u",
inr-istart, cur, nbMatches, longestML);
DEBUGLOG(7, "cPos:%i==rPos:%u, found %u matches, of longest ML=%u",
(int)(inr-istart), cur, nbMatches, longestML);
if ( (longestML > sufficient_len)
|| (cur + longestML >= ZSTD_OPT_NUM)
@@ -1411,8 +1411,8 @@ _shortestPath: /* cur, last_pos, best_mlen, best_off have to be set */
U32 const mlen = opt[storePos].mlen;
U32 const offBase = opt[storePos].off;
U32 const advance = llen + mlen;
DEBUGLOG(6, "considering seq starting at %zi, llen=%u, mlen=%u",
anchor - istart, (unsigned)llen, (unsigned)mlen);
DEBUGLOG(6, "considering seq starting at %i, llen=%u, mlen=%u",
(int)(anchor - istart), (unsigned)llen, (unsigned)mlen);
if (mlen==0) { /* only literals => must be last "sequence", actually starting a new stream of sequences */
assert(storePos == storeEnd); /* must be last sequence */
+181
View File
@@ -0,0 +1,181 @@
/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
* 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).
* You may select, at your option, one of the above-listed licenses.
*/
#include "../common/compiler.h" /* ZSTD_ALIGNOF */
#include "../common/mem.h" /* S64 */
#include "../common/zstd_deps.h" /* ZSTD_memset */
#include "../common/zstd_internal.h" /* ZSTD_STATIC_ASSERT */
#include "zstd_preSplit.h"
#define BLOCKSIZE_MIN 3500
#define THRESHOLD_PENALTY_RATE 16
#define THRESHOLD_BASE (THRESHOLD_PENALTY_RATE - 2)
#define THRESHOLD_PENALTY 3
#define HASHLENGTH 2
#define HASHLOG 10
#define HASHTABLESIZE (1 << HASHLOG)
#define HASHMASK (HASHTABLESIZE - 1)
#define KNUTH 0x9e3779b9
static unsigned hash2(const void *p)
{
return (U32)(MEM_read16(p)) * KNUTH >> (32 - HASHLOG);
}
typedef struct {
unsigned events[HASHTABLESIZE];
size_t nbEvents;
} Fingerprint;
typedef struct {
Fingerprint pastEvents;
Fingerprint newEvents;
} FPStats;
static void initStats(FPStats* fpstats)
{
ZSTD_memset(fpstats, 0, sizeof(FPStats));
}
FORCE_INLINE_TEMPLATE void addEvents_generic(Fingerprint* fp, const void* src, size_t srcSize, size_t samplingRate)
{
const char* p = (const char*)src;
size_t limit = srcSize - HASHLENGTH + 1;
size_t n;
assert(srcSize >= HASHLENGTH);
for (n = 0; n < limit; n+=samplingRate) {
fp->events[hash2(p+n)]++;
}
fp->nbEvents += limit/samplingRate;
}
#define ADDEVENTS_RATE(_rate) ZSTD_addEvents_##_rate
#define ZSTD_GEN_ADDEVENTS_SAMPLE(_rate) \
static void ADDEVENTS_RATE(_rate)(Fingerprint* fp, const void* src, size_t srcSize) \
{ \
addEvents_generic(fp, src, srcSize, _rate); \
}
ZSTD_GEN_ADDEVENTS_SAMPLE(1)
ZSTD_GEN_ADDEVENTS_SAMPLE(5)
typedef void (*addEvents_f)(Fingerprint* fp, const void* src, size_t srcSize);
static void recordFingerprint(Fingerprint* fp, const void* src, size_t s, addEvents_f addEvents)
{
ZSTD_memset(fp, 0, sizeof(*fp));
addEvents(fp, src, s);
}
static U64 abs64(S64 s64) { return (U64)((s64 < 0) ? -s64 : s64); }
static U64 fpDistance(const Fingerprint* fp1, const Fingerprint* fp2)
{
U64 distance = 0;
size_t n;
for (n = 0; n < HASHTABLESIZE; n++) {
distance +=
abs64((S64)fp1->events[n] * (S64)fp2->nbEvents - (S64)fp2->events[n] * (S64)fp1->nbEvents);
}
return distance;
}
/* Compare newEvents with pastEvents
* return 1 when considered "too different"
*/
static int compareFingerprints(const Fingerprint* ref,
const Fingerprint* newfp,
int penalty)
{
assert(ref->nbEvents > 0);
assert(newfp->nbEvents > 0);
{ U64 p50 = (U64)ref->nbEvents * (U64)newfp->nbEvents;
U64 deviation = fpDistance(ref, newfp);
U64 threshold = p50 * (U64)(THRESHOLD_BASE + penalty) / THRESHOLD_PENALTY_RATE;
return deviation >= threshold;
}
}
static void mergeEvents(Fingerprint* acc, const Fingerprint* newfp)
{
size_t n;
for (n = 0; n < HASHTABLESIZE; n++) {
acc->events[n] += newfp->events[n];
}
acc->nbEvents += newfp->nbEvents;
}
static void flushEvents(FPStats* fpstats)
{
size_t n;
for (n = 0; n < HASHTABLESIZE; n++) {
fpstats->pastEvents.events[n] = fpstats->newEvents.events[n];
}
fpstats->pastEvents.nbEvents = fpstats->newEvents.nbEvents;
ZSTD_memset(&fpstats->newEvents, 0, sizeof(fpstats->newEvents));
}
static void removeEvents(Fingerprint* acc, const Fingerprint* slice)
{
size_t n;
for (n = 0; n < HASHTABLESIZE; n++) {
assert(acc->events[n] >= slice->events[n]);
acc->events[n] -= slice->events[n];
}
acc->nbEvents -= slice->nbEvents;
}
#define CHUNKSIZE (8 << 10)
/* Note: technically, we use CHUNKSIZE, so that's 8 KB */
static size_t ZSTD_splitBlock_byChunks(const void* src, size_t srcSize,
size_t blockSizeMax, addEvents_f f,
void* workspace, size_t wkspSize)
{
FPStats* const fpstats = (FPStats*)workspace;
const char* p = (const char*)src;
int penalty = THRESHOLD_PENALTY;
size_t pos = 0;
if (srcSize <= blockSizeMax) return srcSize;
assert(blockSizeMax == (128 << 10));
assert(workspace != NULL);
assert((size_t)workspace % ZSTD_ALIGNOF(FPStats) == 0);
ZSTD_STATIC_ASSERT(ZSTD_SLIPBLOCK_WORKSPACESIZE >= sizeof(FPStats));
assert(wkspSize >= sizeof(FPStats)); (void)wkspSize;
initStats(fpstats);
recordFingerprint(&fpstats->pastEvents, p, CHUNKSIZE, f);
for (pos = CHUNKSIZE; pos <= blockSizeMax - CHUNKSIZE; pos += CHUNKSIZE) {
recordFingerprint(&fpstats->newEvents, p + pos, CHUNKSIZE, f);
if (compareFingerprints(&fpstats->pastEvents, &fpstats->newEvents, penalty)) {
return pos;
} else {
mergeEvents(&fpstats->pastEvents, &fpstats->newEvents);
if (penalty > 0) penalty--;
}
}
assert(pos == blockSizeMax);
return blockSizeMax;
(void)flushEvents; (void)removeEvents;
}
size_t ZSTD_splitBlock(const void* src, size_t srcSize,
size_t blockSizeMax, ZSTD_SplitBlock_strategy_e splitStrat,
void* workspace, size_t wkspSize)
{
if (splitStrat == split_lvl2)
return ZSTD_splitBlock_byChunks(src, srcSize, blockSizeMax, ADDEVENTS_RATE(1), workspace, wkspSize);
assert(splitStrat == split_lvl1);
return ZSTD_splitBlock_byChunks(src, srcSize, blockSizeMax, ADDEVENTS_RATE(5), workspace, wkspSize);
}
+40
View File
@@ -0,0 +1,40 @@
/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
* 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).
* You may select, at your option, one of the above-listed licenses.
*/
#ifndef ZSTD_PRESPLIT_H
#define ZSTD_PRESPLIT_H
#include <stddef.h> /* size_t */
#if defined (__cplusplus)
extern "C" {
#endif
typedef enum { split_lvl1, split_lvl2 } ZSTD_SplitBlock_strategy_e;
#define ZSTD_SLIPBLOCK_WORKSPACESIZE 8208
/* note:
* @workspace must be aligned on 8-bytes boundaries
* @wkspSize must be at least >= ZSTD_SLIPBLOCK_WORKSPACESIZE
* note2:
* for the time being, this function only accepts full 128 KB blocks,
* therefore @blockSizeMax must be == 128 KB.
* This could be extended to smaller sizes in the future.
*/
size_t ZSTD_splitBlock(const void* src, size_t srcSize,
size_t blockSizeMax, ZSTD_SplitBlock_strategy_e splitStrat,
void* workspace, size_t wkspSize);
#if defined (__cplusplus)
}
#endif
#endif /* ZSTD_PRESPLIT_H */
+1 -1
View File
@@ -1057,7 +1057,7 @@ static size_t ZSTD_decompressFrame(ZSTD_DCtx* dctx,
}
ZSTD_DCtx_trace_end(dctx, (U64)(op-ostart), (U64)(ip-istart), /* streaming */ 0);
/* Allow caller to get size read */
DEBUGLOG(4, "ZSTD_decompressFrame: decompressed frame of size %zi, consuming %zi bytes of input", op-ostart, ip - (const BYTE*)*srcPtr);
DEBUGLOG(4, "ZSTD_decompressFrame: decompressed frame of size %i, consuming %i bytes of input", (int)(op-ostart), (int)(ip - (const BYTE*)*srcPtr));
*srcPtr = ip;
*srcSizePtr = remainingSrcSize;
return (size_t)(op-ostart);
+11 -8
View File
@@ -3653,16 +3653,19 @@ static int basicUnitTests(U32 const seed, double compressibility)
ZSTD_freeDCtx(dctx);
}
/* long rle test */
/* rle detection test: must compress better blocks with a single identical byte repeated */
{ size_t sampleSize = 0;
size_t expectedCompressedSize = 39; /* block 1, 2: compressed, block 3: RLE, zstd 1.4.4 */
DISPLAYLEVEL(3, "test%3i : Long RLE test : ", testNb++);
memset((char*)CNBuffer+sampleSize, 'B', 256 KB - 1);
sampleSize += 256 KB - 1;
memset((char*)CNBuffer+sampleSize, 'A', 96 KB);
sampleSize += 96 KB;
size_t maxCompressedSize = 46; /* block 1, 2: compressed, block 3: RLE, zstd 1.4.4 */
DISPLAYLEVEL(3, "test%3i : RLE detection test : ", testNb++);
memset((char*)CNBuffer+sampleSize, 'B', 256 KB - 2);
sampleSize += 256 KB - 2;
memset((char*)CNBuffer+sampleSize, 'A', 100 KB);
sampleSize += 100 KB;
cSize = ZSTD_compress(compressedBuffer, ZSTD_compressBound(sampleSize), CNBuffer, sampleSize, 1);
if (ZSTD_isError(cSize) || cSize > expectedCompressedSize) goto _output_error;
if (ZSTD_isError(cSize) || cSize > maxCompressedSize) {
DISPLAYLEVEL(4, "error: cSize %u > %u expected ! \n", (unsigned)cSize, (unsigned)maxCompressedSize);
goto _output_error;
}
{ CHECK_NEWV(regenSize, ZSTD_decompress(decodedBuffer, sampleSize, compressedBuffer, cSize));
if (regenSize!=sampleSize) goto _output_error; }
DISPLAYLEVEL(3, "OK \n");
+643 -643
View File
@@ -1,63 +1,63 @@
Data, Config, Method, Total compressed size
silesia.tar, level -5, compress simple, 6861055
silesia.tar, level -3, compress simple, 6505483
silesia.tar, level -1, compress simple, 6179047
silesia.tar, level 0, compress simple, 4851407
silesia.tar, level 1, compress simple, 5327717
silesia.tar, level 3, compress simple, 4851407
silesia.tar, level 4, compress simple, 4788821
silesia.tar, level 5, compress simple, 4679004
silesia.tar, level 6, compress simple, 4614561
silesia.tar, level 7, compress simple, 4579828
silesia.tar, level 9, compress simple, 4555448
silesia.tar, level 13, compress simple, 4502956
silesia.tar, level 16, compress simple, 4360385
silesia.tar, level 19, compress simple, 4260939
silesia.tar, uncompressed literals, compress simple, 4851407
silesia.tar, uncompressed literals optimal, compress simple, 4260939
silesia.tar, huffman literals, compress simple, 6179047
github.tar, level -5, compress simple, 52115
github.tar, level -3, compress simple, 45678
github.tar, level -1, compress simple, 42560
github.tar, level 0, compress simple, 38884
github.tar, level 1, compress simple, 39200
github.tar, level 3, compress simple, 38884
github.tar, level 4, compress simple, 38880
github.tar, level 5, compress simple, 39651
github.tar, level 6, compress simple, 39282
github.tar, level 7, compress simple, 38005
silesia.tar, level -5, compress simple, 6860782
silesia.tar, level -3, compress simple, 6507448
silesia.tar, level -1, compress simple, 6175582
silesia.tar, level 0, compress simple, 4843429
silesia.tar, level 1, compress simple, 5316794
silesia.tar, level 3, compress simple, 4843429
silesia.tar, level 4, compress simple, 4780657
silesia.tar, level 5, compress simple, 4669650
silesia.tar, level 6, compress simple, 4604925
silesia.tar, level 7, compress simple, 4570873
silesia.tar, level 9, compress simple, 4537558
silesia.tar, level 13, compress simple, 4484732
silesia.tar, level 16, compress simple, 4355572
silesia.tar, level 19, compress simple, 4257629
silesia.tar, uncompressed literals, compress simple, 4843429
silesia.tar, uncompressed literals optimal, compress simple, 4257629
silesia.tar, huffman literals, compress simple, 6175582
github.tar, level -5, compress simple, 52320
github.tar, level -3, compress simple, 45823
github.tar, level -1, compress simple, 42740
github.tar, level 0, compress simple, 39073
github.tar, level 1, compress simple, 39444
github.tar, level 3, compress simple, 39073
github.tar, level 4, compress simple, 39068
github.tar, level 5, compress simple, 39808
github.tar, level 6, compress simple, 39455
github.tar, level 7, compress simple, 38168
github.tar, level 9, compress simple, 36723
github.tar, level 13, compress simple, 35501
github.tar, level 16, compress simple, 40466
github.tar, level 19, compress simple, 32262
github.tar, uncompressed literals, compress simple, 38884
github.tar, uncompressed literals, compress simple, 39073
github.tar, uncompressed literals optimal, compress simple, 32262
github.tar, huffman literals, compress simple, 42560
silesia, level -5, compress cctx, 6857372
silesia, level -3, compress cctx, 6503412
silesia, level -1, compress cctx, 6172202
silesia, level 0, compress cctx, 4839431
silesia, level 1, compress cctx, 5306632
silesia, level 3, compress cctx, 4839431
silesia, level 4, compress cctx, 4776557
silesia, level 5, compress cctx, 4667668
silesia, level 6, compress cctx, 4604351
silesia, level 7, compress cctx, 4570271
silesia, level 9, compress cctx, 4545850
silesia, level 13, compress cctx, 4493990
silesia, level 16, compress cctx, 4359652
silesia, level 19, compress cctx, 4266582
silesia, long distance mode, compress cctx, 4839431
silesia, multithreaded, compress cctx, 4839431
silesia, multithreaded long distance mode, compress cctx, 4839431
github.tar, huffman literals, compress simple, 42740
silesia, level -5, compress cctx, 6857776
silesia, level -3, compress cctx, 6504756
silesia, level -1, compress cctx, 6174127
silesia, level 0, compress cctx, 4838417
silesia, level 1, compress cctx, 5306931
silesia, level 3, compress cctx, 4838417
silesia, level 4, compress cctx, 4775359
silesia, level 5, compress cctx, 4666524
silesia, level 6, compress cctx, 4602031
silesia, level 7, compress cctx, 4567954
silesia, level 9, compress cctx, 4540520
silesia, level 13, compress cctx, 4488969
silesia, level 16, compress cctx, 4356799
silesia, level 19, compress cctx, 4265851
silesia, long distance mode, compress cctx, 4838417
silesia, multithreaded, compress cctx, 4838417
silesia, multithreaded long distance mode, compress cctx, 4838417
silesia, small window log, compress cctx, 7082907
silesia, small hash log, compress cctx, 6526141
silesia, small chain log, compress cctx, 4912197
silesia, explicit params, compress cctx, 4794318
silesia, uncompressed literals, compress cctx, 4839431
silesia, uncompressed literals optimal, compress cctx, 4266582
silesia, huffman literals, compress cctx, 6172202
silesia, multithreaded with advanced params, compress cctx, 4839431
silesia, small hash log, compress cctx, 6525510
silesia, small chain log, compress cctx, 4912248
silesia, explicit params, compress cctx, 4792640
silesia, uncompressed literals, compress cctx, 4838417
silesia, uncompressed literals optimal, compress cctx, 4265851
silesia, huffman literals, compress cctx, 6174127
silesia, multithreaded with advanced params, compress cctx, 4838417
github, level -5, compress cctx, 204407
github, level -5 with dict, compress cctx, 47581
github, level -3, compress cctx, 193253
@@ -97,57 +97,57 @@ github, uncompressed literals, compress
github, uncompressed literals optimal, compress cctx, 132879
github, huffman literals, compress cctx, 175468
github, multithreaded with advanced params, compress cctx, 141069
silesia, level -5, zstdcli, 6857420
silesia, level -3, zstdcli, 6503460
silesia, level -1, zstdcli, 6172250
silesia, level 0, zstdcli, 4839479
silesia, level 1, zstdcli, 5306680
silesia, level 3, zstdcli, 4839479
silesia, level 4, zstdcli, 4776605
silesia, level 5, zstdcli, 4667716
silesia, level 6, zstdcli, 4604399
silesia, level 7, zstdcli, 4570319
silesia, level 9, zstdcli, 4545898
silesia, level 13, zstdcli, 4494038
silesia, level 16, zstdcli, 4359700
silesia, level 19, zstdcli, 4266630
silesia, long distance mode, zstdcli, 4831224
silesia, multithreaded, zstdcli, 4839479
silesia, multithreaded long distance mode, zstdcli, 4831224
silesia, level -5, zstdcli, 6856073
silesia, level -3, zstdcli, 6505580
silesia, level -1, zstdcli, 6172649
silesia, level 0, zstdcli, 4838997
silesia, level 1, zstdcli, 5306179
silesia, level 3, zstdcli, 4838997
silesia, level 4, zstdcli, 4775769
silesia, level 5, zstdcli, 4666931
silesia, level 6, zstdcli, 4602509
silesia, level 7, zstdcli, 4568265
silesia, level 9, zstdcli, 4540123
silesia, level 13, zstdcli, 4488478
silesia, level 16, zstdcli, 4358150
silesia, level 19, zstdcli, 4265929
silesia, long distance mode, zstdcli, 4830467
silesia, multithreaded, zstdcli, 4838997
silesia, multithreaded long distance mode, zstdcli, 4830467
silesia, small window log, zstdcli, 7094528
silesia, small hash log, zstdcli, 6526189
silesia, small chain log, zstdcli, 4912245
silesia, explicit params, zstdcli, 4795840
silesia, uncompressed literals, zstdcli, 5117005
silesia, uncompressed literals optimal, zstdcli, 4316928
silesia, huffman literals, zstdcli, 5321417
silesia, multithreaded with advanced params, zstdcli, 5117005
silesia.tar, level -5, zstdcli, 6862049
silesia.tar, level -3, zstdcli, 6506509
silesia.tar, level -1, zstdcli, 6179789
silesia.tar, level 0, zstdcli, 4851482
silesia.tar, level 1, zstdcli, 5329010
silesia.tar, level 3, zstdcli, 4851482
silesia.tar, level 4, zstdcli, 4789729
silesia.tar, level 5, zstdcli, 4679860
silesia.tar, level 6, zstdcli, 4615355
silesia.tar, level 7, zstdcli, 4581791
silesia.tar, level 9, zstdcli, 4555452
silesia.tar, level 13, zstdcli, 4502960
silesia.tar, level 16, zstdcli, 4360389
silesia.tar, level 19, zstdcli, 4260943
silesia.tar, no source size, zstdcli, 4851478
silesia.tar, long distance mode, zstdcli, 4843159
silesia.tar, multithreaded, zstdcli, 4851482
silesia.tar, multithreaded long distance mode, zstdcli, 4843159
silesia, small hash log, zstdcli, 6527214
silesia, small chain log, zstdcli, 4911647
silesia, explicit params, zstdcli, 4794378
silesia, uncompressed literals, zstdcli, 5117843
silesia, uncompressed literals optimal, zstdcli, 4316761
silesia, huffman literals, zstdcli, 5320793
silesia, multithreaded with advanced params, zstdcli, 5117843
silesia.tar, level -5, zstdcli, 6860173
silesia.tar, level -3, zstdcli, 6507196
silesia.tar, level -1, zstdcli, 6177719
silesia.tar, level 0, zstdcli, 4841906
silesia.tar, level 1, zstdcli, 5313917
silesia.tar, level 3, zstdcli, 4841906
silesia.tar, level 4, zstdcli, 4780121
silesia.tar, level 5, zstdcli, 4671144
silesia.tar, level 6, zstdcli, 4606407
silesia.tar, level 7, zstdcli, 4572666
silesia.tar, level 9, zstdcli, 4542599
silesia.tar, level 13, zstdcli, 4489976
silesia.tar, level 16, zstdcli, 4356959
silesia.tar, level 19, zstdcli, 4259787
silesia.tar, no source size, zstdcli, 4841902
silesia.tar, long distance mode, zstdcli, 4834266
silesia.tar, multithreaded, zstdcli, 4841906
silesia.tar, multithreaded long distance mode, zstdcli, 4834266
silesia.tar, small window log, zstdcli, 7100110
silesia.tar, small hash log, zstdcli, 6529264
silesia.tar, small chain log, zstdcli, 4917022
silesia.tar, explicit params, zstdcli, 4821112
silesia.tar, uncompressed literals, zstdcli, 5118944
silesia.tar, uncompressed literals optimal, zstdcli, 4308455
silesia.tar, huffman literals, zstdcli, 5342074
silesia.tar, multithreaded with advanced params, zstdcli, 5118944
silesia.tar, small hash log, zstdcli, 6530007
silesia.tar, small chain log, zstdcli, 4916091
silesia.tar, explicit params, zstdcli, 4809323
silesia.tar, uncompressed literals, zstdcli, 5116446
silesia.tar, uncompressed literals optimal, zstdcli, 4306844
silesia.tar, huffman literals, zstdcli, 5326463
silesia.tar, multithreaded with advanced params, zstdcli, 5116446
github, level -5, zstdcli, 206407
github, level -5 with dict, zstdcli, 47832
github, level -3, zstdcli, 195253
@@ -187,25 +187,25 @@ github, uncompressed literals, zstdcli,
github, uncompressed literals optimal, zstdcli, 154667
github, huffman literals, zstdcli, 144365
github, multithreaded with advanced params, zstdcli, 167909
github.tar, level -5, zstdcli, 52119
github.tar, level -5 with dict, zstdcli, 51101
github.tar, level -3, zstdcli, 45682
github.tar, level -3 with dict, zstdcli, 44738
github.tar, level -1, zstdcli, 42564
github.tar, level -1 with dict, zstdcli, 41357
github.tar, level 0, zstdcli, 38888
github.tar, level 0 with dict, zstdcli, 37999
github.tar, level 1, zstdcli, 39204
github.tar, level 1 with dict, zstdcli, 38123
github.tar, level 3, zstdcli, 38888
github.tar, level 3 with dict, zstdcli, 37999
github.tar, level 4, zstdcli, 38884
github.tar, level 4 with dict, zstdcli, 37952
github.tar, level 5, zstdcli, 39655
github.tar, level 5 with dict, zstdcli, 39073
github.tar, level 6, zstdcli, 39286
github.tar, level 6 with dict, zstdcli, 38647
github.tar, level 7, zstdcli, 38009
github.tar, level -5, zstdcli, 52308
github.tar, level -5 with dict, zstdcli, 51318
github.tar, level -3, zstdcli, 45815
github.tar, level -3 with dict, zstdcli, 44883
github.tar, level -1, zstdcli, 42688
github.tar, level -1 with dict, zstdcli, 41510
github.tar, level 0, zstdcli, 39071
github.tar, level 0 with dict, zstdcli, 38140
github.tar, level 1, zstdcli, 39404
github.tar, level 1 with dict, zstdcli, 38320
github.tar, level 3, zstdcli, 39071
github.tar, level 3 with dict, zstdcli, 38140
github.tar, level 4, zstdcli, 39067
github.tar, level 4 with dict, zstdcli, 38082
github.tar, level 5, zstdcli, 39815
github.tar, level 5 with dict, zstdcli, 39221
github.tar, level 6, zstdcli, 39455
github.tar, level 6 with dict, zstdcli, 38787
github.tar, level 7, zstdcli, 38177
github.tar, level 7 with dict, zstdcli, 37861
github.tar, level 9, zstdcli, 36727
github.tar, level 9 with dict, zstdcli, 36686
@@ -215,87 +215,87 @@ github.tar, level 16, zstdcli,
github.tar, level 16 with dict, zstdcli, 33379
github.tar, level 19, zstdcli, 32266
github.tar, level 19 with dict, zstdcli, 32705
github.tar, no source size, zstdcli, 38885
github.tar, no source size with dict, zstdcli, 38115
github.tar, long distance mode, zstdcli, 40227
github.tar, multithreaded, zstdcli, 38888
github.tar, multithreaded long distance mode, zstdcli, 40227
github.tar, no source size, zstdcli, 39068
github.tar, no source size with dict, zstdcli, 38274
github.tar, long distance mode, zstdcli, 40381
github.tar, multithreaded, zstdcli, 39071
github.tar, multithreaded long distance mode, zstdcli, 40381
github.tar, small window log, zstdcli, 198539
github.tar, small hash log, zstdcli, 129874
github.tar, small chain log, zstdcli, 41673
github.tar, explicit params, zstdcli, 41385
github.tar, uncompressed literals, zstdcli, 41566
github.tar, explicit params, zstdcli, 41588
github.tar, uncompressed literals, zstdcli, 41704
github.tar, uncompressed literals optimal, zstdcli, 35360
github.tar, huffman literals, zstdcli, 38857
github.tar, multithreaded with advanced params, zstdcli, 41566
silesia, level -5, advanced one pass, 6857372
silesia, level -3, advanced one pass, 6503412
silesia, level -1, advanced one pass, 6172202
silesia, level 0, advanced one pass, 4839431
silesia, level 1, advanced one pass, 5306632
silesia, level 3, advanced one pass, 4839431
silesia, level 4, advanced one pass, 4776557
silesia, level 5 row 1, advanced one pass, 4667668
silesia, level 5 row 2, advanced one pass, 4670326
silesia, level 5, advanced one pass, 4667668
silesia, level 6, advanced one pass, 4604351
silesia, level 7 row 1, advanced one pass, 4570271
silesia, level 7 row 2, advanced one pass, 4565169
silesia, level 7, advanced one pass, 4570271
silesia, level 9, advanced one pass, 4545850
silesia, level 11 row 1, advanced one pass, 4505658
silesia, level 11 row 2, advanced one pass, 4503429
silesia, level 12 row 1, advanced one pass, 4505658
silesia, level 12 row 2, advanced one pass, 4503429
silesia, level 13, advanced one pass, 4493990
silesia, level 16, advanced one pass, 4359652
silesia, level 19, advanced one pass, 4266582
silesia, no source size, advanced one pass, 4839431
silesia, long distance mode, advanced one pass, 4831158
silesia, multithreaded, advanced one pass, 4839431
silesia, multithreaded long distance mode, advanced one pass, 4831176
github.tar, huffman literals, zstdcli, 39046
github.tar, multithreaded with advanced params, zstdcli, 41704
silesia, level -5, advanced one pass, 6857776
silesia, level -3, advanced one pass, 6504756
silesia, level -1, advanced one pass, 6174127
silesia, level 0, advanced one pass, 4838417
silesia, level 1, advanced one pass, 5306931
silesia, level 3, advanced one pass, 4838417
silesia, level 4, advanced one pass, 4775359
silesia, level 5 row 1, advanced one pass, 4666524
silesia, level 5 row 2, advanced one pass, 4668976
silesia, level 5, advanced one pass, 4666524
silesia, level 6, advanced one pass, 4602031
silesia, level 7 row 1, advanced one pass, 4567954
silesia, level 7 row 2, advanced one pass, 4562774
silesia, level 7, advanced one pass, 4567954
silesia, level 9, advanced one pass, 4540520
silesia, level 11 row 1, advanced one pass, 4500472
silesia, level 11 row 2, advanced one pass, 4498174
silesia, level 12 row 1, advanced one pass, 4500472
silesia, level 12 row 2, advanced one pass, 4498174
silesia, level 13, advanced one pass, 4488969
silesia, level 16, advanced one pass, 4356799
silesia, level 19, advanced one pass, 4265851
silesia, no source size, advanced one pass, 4838417
silesia, long distance mode, advanced one pass, 4830097
silesia, multithreaded, advanced one pass, 4838949
silesia, multithreaded long distance mode, advanced one pass, 4830419
silesia, small window log, advanced one pass, 7094480
silesia, small hash log, advanced one pass, 6526141
silesia, small chain log, advanced one pass, 4912197
silesia, explicit params, advanced one pass, 4795840
silesia, uncompressed literals, advanced one pass, 5116957
silesia, uncompressed literals optimal, advanced one pass, 4316880
silesia, huffman literals, advanced one pass, 5321369
silesia, multithreaded with advanced params, advanced one pass, 5116957
silesia.tar, level -5, advanced one pass, 6861055
silesia.tar, level -3, advanced one pass, 6505483
silesia.tar, level -1, advanced one pass, 6179047
silesia.tar, level 0, advanced one pass, 4851407
silesia.tar, level 1, advanced one pass, 5327717
silesia.tar, level 3, advanced one pass, 4851407
silesia.tar, level 4, advanced one pass, 4788821
silesia.tar, level 5 row 1, advanced one pass, 4679004
silesia.tar, level 5 row 2, advanced one pass, 4682334
silesia.tar, level 5, advanced one pass, 4679004
silesia.tar, level 6, advanced one pass, 4614561
silesia.tar, level 7 row 1, advanced one pass, 4579828
silesia.tar, level 7 row 2, advanced one pass, 4575602
silesia.tar, level 7, advanced one pass, 4579828
silesia.tar, level 9, advanced one pass, 4555448
silesia.tar, level 11 row 1, advanced one pass, 4514962
silesia.tar, level 11 row 2, advanced one pass, 4513816
silesia.tar, level 12 row 1, advanced one pass, 4514517
silesia.tar, level 12 row 2, advanced one pass, 4514007
silesia.tar, level 13, advanced one pass, 4502956
silesia.tar, level 16, advanced one pass, 4360385
silesia.tar, level 19, advanced one pass, 4260939
silesia.tar, no source size, advanced one pass, 4851407
silesia.tar, long distance mode, advanced one pass, 4837775
silesia.tar, multithreaded, advanced one pass, 4851478
silesia.tar, multithreaded long distance mode, advanced one pass, 4843155
silesia, small hash log, advanced one pass, 6525510
silesia, small chain log, advanced one pass, 4912248
silesia, explicit params, advanced one pass, 4794219
silesia, uncompressed literals, advanced one pass, 5117482
silesia, uncompressed literals optimal, advanced one pass, 4316644
silesia, huffman literals, advanced one pass, 5321686
silesia, multithreaded with advanced params, advanced one pass, 5117795
silesia.tar, level -5, advanced one pass, 6860782
silesia.tar, level -3, advanced one pass, 6507448
silesia.tar, level -1, advanced one pass, 6175582
silesia.tar, level 0, advanced one pass, 4843429
silesia.tar, level 1, advanced one pass, 5316794
silesia.tar, level 3, advanced one pass, 4843429
silesia.tar, level 4, advanced one pass, 4780657
silesia.tar, level 5 row 1, advanced one pass, 4669650
silesia.tar, level 5 row 2, advanced one pass, 4673119
silesia.tar, level 5, advanced one pass, 4669650
silesia.tar, level 6, advanced one pass, 4604925
silesia.tar, level 7 row 1, advanced one pass, 4570873
silesia.tar, level 7 row 2, advanced one pass, 4566314
silesia.tar, level 7, advanced one pass, 4570873
silesia.tar, level 9, advanced one pass, 4537558
silesia.tar, level 11 row 1, advanced one pass, 4496590
silesia.tar, level 11 row 2, advanced one pass, 4495225
silesia.tar, level 12 row 1, advanced one pass, 4496084
silesia.tar, level 12 row 2, advanced one pass, 4495434
silesia.tar, level 13, advanced one pass, 4484732
silesia.tar, level 16, advanced one pass, 4355572
silesia.tar, level 19, advanced one pass, 4257629
silesia.tar, no source size, advanced one pass, 4843429
silesia.tar, long distance mode, advanced one pass, 4830453
silesia.tar, multithreaded, advanced one pass, 4841902
silesia.tar, multithreaded long distance mode, advanced one pass, 4834262
silesia.tar, small window log, advanced one pass, 7100064
silesia.tar, small hash log, advanced one pass, 6529206
silesia.tar, small chain log, advanced one pass, 4917041
silesia.tar, explicit params, advanced one pass, 4807274
silesia.tar, uncompressed literals, advanced one pass, 5118848
silesia.tar, uncompressed literals optimal, advanced one pass, 4308451
silesia.tar, huffman literals, advanced one pass, 5341705
silesia.tar, multithreaded with advanced params, advanced one pass, 5118940
silesia.tar, small hash log, advanced one pass, 6530222
silesia.tar, small chain log, advanced one pass, 4915689
silesia.tar, explicit params, advanced one pass, 4797958
silesia.tar, uncompressed literals, advanced one pass, 5116329
silesia.tar, uncompressed literals optimal, advanced one pass, 4306289
silesia.tar, huffman literals, advanced one pass, 5331382
silesia.tar, multithreaded with advanced params, advanced one pass, 5116442
github, level -5, advanced one pass, 204407
github, level -5 with dict, advanced one pass, 45832
github, level -3, advanced one pass, 193253
@@ -421,74 +421,74 @@ github, uncompressed literals, advanced
github, uncompressed literals optimal, advanced one pass, 152667
github, huffman literals, advanced one pass, 142365
github, multithreaded with advanced params, advanced one pass, 165909
github.tar, level -5, advanced one pass, 52115
github.tar, level -5 with dict, advanced one pass, 51097
github.tar, level -3, advanced one pass, 45678
github.tar, level -3 with dict, advanced one pass, 44734
github.tar, level -1, advanced one pass, 42560
github.tar, level -1 with dict, advanced one pass, 41353
github.tar, level 0, advanced one pass, 38884
github.tar, level 0 with dict, advanced one pass, 37995
github.tar, level 0 with dict dms, advanced one pass, 38114
github.tar, level 0 with dict dds, advanced one pass, 38114
github.tar, level 0 with dict copy, advanced one pass, 37995
github.tar, level 0 with dict load, advanced one pass, 37956
github.tar, level 1, advanced one pass, 39200
github.tar, level 1 with dict, advanced one pass, 38119
github.tar, level 1 with dict dms, advanced one pass, 38406
github.tar, level 1 with dict dds, advanced one pass, 38406
github.tar, level 1 with dict copy, advanced one pass, 38119
github.tar, level 1 with dict load, advanced one pass, 38364
github.tar, level 3, advanced one pass, 38884
github.tar, level 3 with dict, advanced one pass, 37995
github.tar, level 3 with dict dms, advanced one pass, 38114
github.tar, level 3 with dict dds, advanced one pass, 38114
github.tar, level 3 with dict copy, advanced one pass, 37995
github.tar, level 3 with dict load, advanced one pass, 37956
github.tar, level 4, advanced one pass, 38880
github.tar, level 4 with dict, advanced one pass, 37948
github.tar, level 4 with dict dms, advanced one pass, 37995
github.tar, level 4 with dict dds, advanced one pass, 37995
github.tar, level 4 with dict copy, advanced one pass, 37948
github.tar, level 4 with dict load, advanced one pass, 37927
github.tar, level 5 row 1, advanced one pass, 39651
github.tar, level 5 row 1 with dict dms, advanced one pass, 39043
github.tar, level 5 row 1 with dict dds, advanced one pass, 39069
github.tar, level 5 row 1 with dict copy, advanced one pass, 39145
github.tar, level 5 row 1 with dict load, advanced one pass, 39000
github.tar, level 5 row 2, advanced one pass, 39701
github.tar, level 5 row 2 with dict dms, advanced one pass, 39365
github.tar, level 5 row 2 with dict dds, advanced one pass, 39233
github.tar, level 5 row 2 with dict copy, advanced one pass, 39715
github.tar, level 5 row 2 with dict load, advanced one pass, 39158
github.tar, level 5, advanced one pass, 39651
github.tar, level 5 with dict, advanced one pass, 39145
github.tar, level 5 with dict dms, advanced one pass, 39043
github.tar, level 5 with dict dds, advanced one pass, 39069
github.tar, level 5 with dict copy, advanced one pass, 39145
github.tar, level 5 with dict load, advanced one pass, 39000
github.tar, level 6, advanced one pass, 39282
github.tar, level 6 with dict, advanced one pass, 38656
github.tar, level 6 with dict dms, advanced one pass, 38640
github.tar, level 6 with dict dds, advanced one pass, 38643
github.tar, level 6 with dict copy, advanced one pass, 38656
github.tar, level 6 with dict load, advanced one pass, 38647
github.tar, level 7 row 1, advanced one pass, 38005
github.tar, level -5, advanced one pass, 52320
github.tar, level -5 with dict, advanced one pass, 51321
github.tar, level -3, advanced one pass, 45823
github.tar, level -3 with dict, advanced one pass, 44882
github.tar, level -1, advanced one pass, 42740
github.tar, level -1 with dict, advanced one pass, 41506
github.tar, level 0, advanced one pass, 39073
github.tar, level 0 with dict, advanced one pass, 38146
github.tar, level 0 with dict dms, advanced one pass, 38262
github.tar, level 0 with dict dds, advanced one pass, 38262
github.tar, level 0 with dict copy, advanced one pass, 38146
github.tar, level 0 with dict load, advanced one pass, 38107
github.tar, level 1, advanced one pass, 39444
github.tar, level 1 with dict, advanced one pass, 38338
github.tar, level 1 with dict dms, advanced one pass, 38641
github.tar, level 1 with dict dds, advanced one pass, 38641
github.tar, level 1 with dict copy, advanced one pass, 38338
github.tar, level 1 with dict load, advanced one pass, 38592
github.tar, level 3, advanced one pass, 39073
github.tar, level 3 with dict, advanced one pass, 38146
github.tar, level 3 with dict dms, advanced one pass, 38262
github.tar, level 3 with dict dds, advanced one pass, 38262
github.tar, level 3 with dict copy, advanced one pass, 38146
github.tar, level 3 with dict load, advanced one pass, 38107
github.tar, level 4, advanced one pass, 39068
github.tar, level 4 with dict, advanced one pass, 38081
github.tar, level 4 with dict dms, advanced one pass, 38135
github.tar, level 4 with dict dds, advanced one pass, 38135
github.tar, level 4 with dict copy, advanced one pass, 38081
github.tar, level 4 with dict load, advanced one pass, 38088
github.tar, level 5 row 1, advanced one pass, 39808
github.tar, level 5 row 1 with dict dms, advanced one pass, 39185
github.tar, level 5 row 1 with dict dds, advanced one pass, 39213
github.tar, level 5 row 1 with dict copy, advanced one pass, 39284
github.tar, level 5 row 1 with dict load, advanced one pass, 39155
github.tar, level 5 row 2, advanced one pass, 39851
github.tar, level 5 row 2 with dict dms, advanced one pass, 39498
github.tar, level 5 row 2 with dict dds, advanced one pass, 39364
github.tar, level 5 row 2 with dict copy, advanced one pass, 39843
github.tar, level 5 row 2 with dict load, advanced one pass, 39312
github.tar, level 5, advanced one pass, 39808
github.tar, level 5 with dict, advanced one pass, 39284
github.tar, level 5 with dict dms, advanced one pass, 39185
github.tar, level 5 with dict dds, advanced one pass, 39213
github.tar, level 5 with dict copy, advanced one pass, 39284
github.tar, level 5 with dict load, advanced one pass, 39155
github.tar, level 6, advanced one pass, 39455
github.tar, level 6 with dict, advanced one pass, 38808
github.tar, level 6 with dict dms, advanced one pass, 38792
github.tar, level 6 with dict dds, advanced one pass, 38790
github.tar, level 6 with dict copy, advanced one pass, 38808
github.tar, level 6 with dict load, advanced one pass, 38796
github.tar, level 7 row 1, advanced one pass, 38168
github.tar, level 7 row 1 with dict dms, advanced one pass, 37832
github.tar, level 7 row 1 with dict dds, advanced one pass, 37857
github.tar, level 7 row 1 with dict copy, advanced one pass, 37839
github.tar, level 7 row 1 with dict load, advanced one pass, 37286
github.tar, level 7 row 2, advanced one pass, 38077
github.tar, level 7 row 1 with dict load, advanced one pass, 37445
github.tar, level 7 row 2, advanced one pass, 38235
github.tar, level 7 row 2 with dict dms, advanced one pass, 38012
github.tar, level 7 row 2 with dict dds, advanced one pass, 38014
github.tar, level 7 row 2 with dict copy, advanced one pass, 38101
github.tar, level 7 row 2 with dict load, advanced one pass, 37402
github.tar, level 7, advanced one pass, 38005
github.tar, level 7 row 2 with dict load, advanced one pass, 37552
github.tar, level 7, advanced one pass, 38168
github.tar, level 7 with dict, advanced one pass, 37839
github.tar, level 7 with dict dms, advanced one pass, 37832
github.tar, level 7 with dict dds, advanced one pass, 37857
github.tar, level 7 with dict copy, advanced one pass, 37839
github.tar, level 7 with dict load, advanced one pass, 37286
github.tar, level 7 with dict load, advanced one pass, 37445
github.tar, level 9, advanced one pass, 36723
github.tar, level 9 with dict, advanced one pass, 36531
github.tar, level 9 with dict dms, advanced one pass, 36615
@@ -533,87 +533,87 @@ github.tar, level 19 with dict dms, advanced
github.tar, level 19 with dict dds, advanced one pass, 32565
github.tar, level 19 with dict copy, advanced one pass, 32701
github.tar, level 19 with dict load, advanced one pass, 32428
github.tar, no source size, advanced one pass, 38884
github.tar, no source size with dict, advanced one pass, 37995
github.tar, long distance mode, advanced one pass, 40242
github.tar, multithreaded, advanced one pass, 38884
github.tar, multithreaded long distance mode, advanced one pass, 40223
github.tar, no source size, advanced one pass, 39073
github.tar, no source size with dict, advanced one pass, 38146
github.tar, long distance mode, advanced one pass, 40402
github.tar, multithreaded, advanced one pass, 39067
github.tar, multithreaded long distance mode, advanced one pass, 40377
github.tar, small window log, advanced one pass, 198535
github.tar, small hash log, advanced one pass, 129870
github.tar, small chain log, advanced one pass, 41669
github.tar, explicit params, advanced one pass, 41385
github.tar, uncompressed literals, advanced one pass, 41562
github.tar, explicit params, advanced one pass, 41605
github.tar, uncompressed literals, advanced one pass, 41709
github.tar, uncompressed literals optimal, advanced one pass, 35356
github.tar, huffman literals, advanced one pass, 38853
github.tar, multithreaded with advanced params, advanced one pass, 41562
silesia, level -5, advanced one pass small out, 6857372
silesia, level -3, advanced one pass small out, 6503412
silesia, level -1, advanced one pass small out, 6172202
silesia, level 0, advanced one pass small out, 4839431
silesia, level 1, advanced one pass small out, 5306632
silesia, level 3, advanced one pass small out, 4839431
silesia, level 4, advanced one pass small out, 4776557
silesia, level 5 row 1, advanced one pass small out, 4667668
silesia, level 5 row 2, advanced one pass small out, 4670326
silesia, level 5, advanced one pass small out, 4667668
silesia, level 6, advanced one pass small out, 4604351
silesia, level 7 row 1, advanced one pass small out, 4570271
silesia, level 7 row 2, advanced one pass small out, 4565169
silesia, level 7, advanced one pass small out, 4570271
silesia, level 9, advanced one pass small out, 4545850
silesia, level 11 row 1, advanced one pass small out, 4505658
silesia, level 11 row 2, advanced one pass small out, 4503429
silesia, level 12 row 1, advanced one pass small out, 4505658
silesia, level 12 row 2, advanced one pass small out, 4503429
silesia, level 13, advanced one pass small out, 4493990
silesia, level 16, advanced one pass small out, 4359652
silesia, level 19, advanced one pass small out, 4266582
silesia, no source size, advanced one pass small out, 4839431
silesia, long distance mode, advanced one pass small out, 4831158
silesia, multithreaded, advanced one pass small out, 4839431
silesia, multithreaded long distance mode, advanced one pass small out, 4831176
github.tar, huffman literals, advanced one pass, 39099
github.tar, multithreaded with advanced params, advanced one pass, 41700
silesia, level -5, advanced one pass small out, 6857776
silesia, level -3, advanced one pass small out, 6504756
silesia, level -1, advanced one pass small out, 6174127
silesia, level 0, advanced one pass small out, 4838417
silesia, level 1, advanced one pass small out, 5306931
silesia, level 3, advanced one pass small out, 4838417
silesia, level 4, advanced one pass small out, 4775359
silesia, level 5 row 1, advanced one pass small out, 4666524
silesia, level 5 row 2, advanced one pass small out, 4668976
silesia, level 5, advanced one pass small out, 4666524
silesia, level 6, advanced one pass small out, 4602031
silesia, level 7 row 1, advanced one pass small out, 4567954
silesia, level 7 row 2, advanced one pass small out, 4562774
silesia, level 7, advanced one pass small out, 4567954
silesia, level 9, advanced one pass small out, 4540520
silesia, level 11 row 1, advanced one pass small out, 4500472
silesia, level 11 row 2, advanced one pass small out, 4498174
silesia, level 12 row 1, advanced one pass small out, 4500472
silesia, level 12 row 2, advanced one pass small out, 4498174
silesia, level 13, advanced one pass small out, 4488969
silesia, level 16, advanced one pass small out, 4356799
silesia, level 19, advanced one pass small out, 4265851
silesia, no source size, advanced one pass small out, 4838417
silesia, long distance mode, advanced one pass small out, 4830097
silesia, multithreaded, advanced one pass small out, 4838949
silesia, multithreaded long distance mode, advanced one pass small out, 4830419
silesia, small window log, advanced one pass small out, 7094480
silesia, small hash log, advanced one pass small out, 6526141
silesia, small chain log, advanced one pass small out, 4912197
silesia, explicit params, advanced one pass small out, 4795840
silesia, uncompressed literals, advanced one pass small out, 5116957
silesia, uncompressed literals optimal, advanced one pass small out, 4316880
silesia, huffman literals, advanced one pass small out, 5321369
silesia, multithreaded with advanced params, advanced one pass small out, 5116957
silesia.tar, level -5, advanced one pass small out, 6861055
silesia.tar, level -3, advanced one pass small out, 6505483
silesia.tar, level -1, advanced one pass small out, 6179047
silesia.tar, level 0, advanced one pass small out, 4851407
silesia.tar, level 1, advanced one pass small out, 5327717
silesia.tar, level 3, advanced one pass small out, 4851407
silesia.tar, level 4, advanced one pass small out, 4788821
silesia.tar, level 5 row 1, advanced one pass small out, 4679004
silesia.tar, level 5 row 2, advanced one pass small out, 4682334
silesia.tar, level 5, advanced one pass small out, 4679004
silesia.tar, level 6, advanced one pass small out, 4614561
silesia.tar, level 7 row 1, advanced one pass small out, 4579828
silesia.tar, level 7 row 2, advanced one pass small out, 4575602
silesia.tar, level 7, advanced one pass small out, 4579828
silesia.tar, level 9, advanced one pass small out, 4555448
silesia.tar, level 11 row 1, advanced one pass small out, 4514962
silesia.tar, level 11 row 2, advanced one pass small out, 4513816
silesia.tar, level 12 row 1, advanced one pass small out, 4514517
silesia.tar, level 12 row 2, advanced one pass small out, 4514007
silesia.tar, level 13, advanced one pass small out, 4502956
silesia.tar, level 16, advanced one pass small out, 4360385
silesia.tar, level 19, advanced one pass small out, 4260939
silesia.tar, no source size, advanced one pass small out, 4851407
silesia.tar, long distance mode, advanced one pass small out, 4837775
silesia.tar, multithreaded, advanced one pass small out, 4851478
silesia.tar, multithreaded long distance mode, advanced one pass small out, 4843155
silesia, small hash log, advanced one pass small out, 6525510
silesia, small chain log, advanced one pass small out, 4912248
silesia, explicit params, advanced one pass small out, 4794219
silesia, uncompressed literals, advanced one pass small out, 5117482
silesia, uncompressed literals optimal, advanced one pass small out, 4316644
silesia, huffman literals, advanced one pass small out, 5321686
silesia, multithreaded with advanced params, advanced one pass small out, 5117795
silesia.tar, level -5, advanced one pass small out, 6860782
silesia.tar, level -3, advanced one pass small out, 6507448
silesia.tar, level -1, advanced one pass small out, 6175582
silesia.tar, level 0, advanced one pass small out, 4843429
silesia.tar, level 1, advanced one pass small out, 5316794
silesia.tar, level 3, advanced one pass small out, 4843429
silesia.tar, level 4, advanced one pass small out, 4780657
silesia.tar, level 5 row 1, advanced one pass small out, 4669650
silesia.tar, level 5 row 2, advanced one pass small out, 4673119
silesia.tar, level 5, advanced one pass small out, 4669650
silesia.tar, level 6, advanced one pass small out, 4604925
silesia.tar, level 7 row 1, advanced one pass small out, 4570873
silesia.tar, level 7 row 2, advanced one pass small out, 4566314
silesia.tar, level 7, advanced one pass small out, 4570873
silesia.tar, level 9, advanced one pass small out, 4537558
silesia.tar, level 11 row 1, advanced one pass small out, 4496590
silesia.tar, level 11 row 2, advanced one pass small out, 4495225
silesia.tar, level 12 row 1, advanced one pass small out, 4496084
silesia.tar, level 12 row 2, advanced one pass small out, 4495434
silesia.tar, level 13, advanced one pass small out, 4484732
silesia.tar, level 16, advanced one pass small out, 4355572
silesia.tar, level 19, advanced one pass small out, 4257629
silesia.tar, no source size, advanced one pass small out, 4843429
silesia.tar, long distance mode, advanced one pass small out, 4830453
silesia.tar, multithreaded, advanced one pass small out, 4841902
silesia.tar, multithreaded long distance mode, advanced one pass small out, 4834262
silesia.tar, small window log, advanced one pass small out, 7100064
silesia.tar, small hash log, advanced one pass small out, 6529206
silesia.tar, small chain log, advanced one pass small out, 4917041
silesia.tar, explicit params, advanced one pass small out, 4807274
silesia.tar, uncompressed literals, advanced one pass small out, 5118848
silesia.tar, uncompressed literals optimal, advanced one pass small out, 4308451
silesia.tar, huffman literals, advanced one pass small out, 5341705
silesia.tar, multithreaded with advanced params, advanced one pass small out, 5118940
silesia.tar, small hash log, advanced one pass small out, 6530222
silesia.tar, small chain log, advanced one pass small out, 4915689
silesia.tar, explicit params, advanced one pass small out, 4797958
silesia.tar, uncompressed literals, advanced one pass small out, 5116329
silesia.tar, uncompressed literals optimal, advanced one pass small out, 4306289
silesia.tar, huffman literals, advanced one pass small out, 5331382
silesia.tar, multithreaded with advanced params, advanced one pass small out, 5116442
github, level -5, advanced one pass small out, 204407
github, level -5 with dict, advanced one pass small out, 45832
github, level -3, advanced one pass small out, 193253
@@ -739,74 +739,74 @@ github, uncompressed literals, advanced
github, uncompressed literals optimal, advanced one pass small out, 152667
github, huffman literals, advanced one pass small out, 142365
github, multithreaded with advanced params, advanced one pass small out, 165909
github.tar, level -5, advanced one pass small out, 52115
github.tar, level -5 with dict, advanced one pass small out, 51097
github.tar, level -3, advanced one pass small out, 45678
github.tar, level -3 with dict, advanced one pass small out, 44734
github.tar, level -1, advanced one pass small out, 42560
github.tar, level -1 with dict, advanced one pass small out, 41353
github.tar, level 0, advanced one pass small out, 38884
github.tar, level 0 with dict, advanced one pass small out, 37995
github.tar, level 0 with dict dms, advanced one pass small out, 38114
github.tar, level 0 with dict dds, advanced one pass small out, 38114
github.tar, level 0 with dict copy, advanced one pass small out, 37995
github.tar, level 0 with dict load, advanced one pass small out, 37956
github.tar, level 1, advanced one pass small out, 39200
github.tar, level 1 with dict, advanced one pass small out, 38119
github.tar, level 1 with dict dms, advanced one pass small out, 38406
github.tar, level 1 with dict dds, advanced one pass small out, 38406
github.tar, level 1 with dict copy, advanced one pass small out, 38119
github.tar, level 1 with dict load, advanced one pass small out, 38364
github.tar, level 3, advanced one pass small out, 38884
github.tar, level 3 with dict, advanced one pass small out, 37995
github.tar, level 3 with dict dms, advanced one pass small out, 38114
github.tar, level 3 with dict dds, advanced one pass small out, 38114
github.tar, level 3 with dict copy, advanced one pass small out, 37995
github.tar, level 3 with dict load, advanced one pass small out, 37956
github.tar, level 4, advanced one pass small out, 38880
github.tar, level 4 with dict, advanced one pass small out, 37948
github.tar, level 4 with dict dms, advanced one pass small out, 37995
github.tar, level 4 with dict dds, advanced one pass small out, 37995
github.tar, level 4 with dict copy, advanced one pass small out, 37948
github.tar, level 4 with dict load, advanced one pass small out, 37927
github.tar, level 5 row 1, advanced one pass small out, 39651
github.tar, level 5 row 1 with dict dms, advanced one pass small out, 39043
github.tar, level 5 row 1 with dict dds, advanced one pass small out, 39069
github.tar, level 5 row 1 with dict copy, advanced one pass small out, 39145
github.tar, level 5 row 1 with dict load, advanced one pass small out, 39000
github.tar, level 5 row 2, advanced one pass small out, 39701
github.tar, level 5 row 2 with dict dms, advanced one pass small out, 39365
github.tar, level 5 row 2 with dict dds, advanced one pass small out, 39233
github.tar, level 5 row 2 with dict copy, advanced one pass small out, 39715
github.tar, level 5 row 2 with dict load, advanced one pass small out, 39158
github.tar, level 5, advanced one pass small out, 39651
github.tar, level 5 with dict, advanced one pass small out, 39145
github.tar, level 5 with dict dms, advanced one pass small out, 39043
github.tar, level 5 with dict dds, advanced one pass small out, 39069
github.tar, level 5 with dict copy, advanced one pass small out, 39145
github.tar, level 5 with dict load, advanced one pass small out, 39000
github.tar, level 6, advanced one pass small out, 39282
github.tar, level 6 with dict, advanced one pass small out, 38656
github.tar, level 6 with dict dms, advanced one pass small out, 38640
github.tar, level 6 with dict dds, advanced one pass small out, 38643
github.tar, level 6 with dict copy, advanced one pass small out, 38656
github.tar, level 6 with dict load, advanced one pass small out, 38647
github.tar, level 7 row 1, advanced one pass small out, 38005
github.tar, level -5, advanced one pass small out, 52320
github.tar, level -5 with dict, advanced one pass small out, 51321
github.tar, level -3, advanced one pass small out, 45823
github.tar, level -3 with dict, advanced one pass small out, 44882
github.tar, level -1, advanced one pass small out, 42740
github.tar, level -1 with dict, advanced one pass small out, 41506
github.tar, level 0, advanced one pass small out, 39073
github.tar, level 0 with dict, advanced one pass small out, 38146
github.tar, level 0 with dict dms, advanced one pass small out, 38262
github.tar, level 0 with dict dds, advanced one pass small out, 38262
github.tar, level 0 with dict copy, advanced one pass small out, 38146
github.tar, level 0 with dict load, advanced one pass small out, 38107
github.tar, level 1, advanced one pass small out, 39444
github.tar, level 1 with dict, advanced one pass small out, 38338
github.tar, level 1 with dict dms, advanced one pass small out, 38641
github.tar, level 1 with dict dds, advanced one pass small out, 38641
github.tar, level 1 with dict copy, advanced one pass small out, 38338
github.tar, level 1 with dict load, advanced one pass small out, 38592
github.tar, level 3, advanced one pass small out, 39073
github.tar, level 3 with dict, advanced one pass small out, 38146
github.tar, level 3 with dict dms, advanced one pass small out, 38262
github.tar, level 3 with dict dds, advanced one pass small out, 38262
github.tar, level 3 with dict copy, advanced one pass small out, 38146
github.tar, level 3 with dict load, advanced one pass small out, 38107
github.tar, level 4, advanced one pass small out, 39068
github.tar, level 4 with dict, advanced one pass small out, 38081
github.tar, level 4 with dict dms, advanced one pass small out, 38135
github.tar, level 4 with dict dds, advanced one pass small out, 38135
github.tar, level 4 with dict copy, advanced one pass small out, 38081
github.tar, level 4 with dict load, advanced one pass small out, 38088
github.tar, level 5 row 1, advanced one pass small out, 39808
github.tar, level 5 row 1 with dict dms, advanced one pass small out, 39185
github.tar, level 5 row 1 with dict dds, advanced one pass small out, 39213
github.tar, level 5 row 1 with dict copy, advanced one pass small out, 39284
github.tar, level 5 row 1 with dict load, advanced one pass small out, 39155
github.tar, level 5 row 2, advanced one pass small out, 39851
github.tar, level 5 row 2 with dict dms, advanced one pass small out, 39498
github.tar, level 5 row 2 with dict dds, advanced one pass small out, 39364
github.tar, level 5 row 2 with dict copy, advanced one pass small out, 39843
github.tar, level 5 row 2 with dict load, advanced one pass small out, 39312
github.tar, level 5, advanced one pass small out, 39808
github.tar, level 5 with dict, advanced one pass small out, 39284
github.tar, level 5 with dict dms, advanced one pass small out, 39185
github.tar, level 5 with dict dds, advanced one pass small out, 39213
github.tar, level 5 with dict copy, advanced one pass small out, 39284
github.tar, level 5 with dict load, advanced one pass small out, 39155
github.tar, level 6, advanced one pass small out, 39455
github.tar, level 6 with dict, advanced one pass small out, 38808
github.tar, level 6 with dict dms, advanced one pass small out, 38792
github.tar, level 6 with dict dds, advanced one pass small out, 38790
github.tar, level 6 with dict copy, advanced one pass small out, 38808
github.tar, level 6 with dict load, advanced one pass small out, 38796
github.tar, level 7 row 1, advanced one pass small out, 38168
github.tar, level 7 row 1 with dict dms, advanced one pass small out, 37832
github.tar, level 7 row 1 with dict dds, advanced one pass small out, 37857
github.tar, level 7 row 1 with dict copy, advanced one pass small out, 37839
github.tar, level 7 row 1 with dict load, advanced one pass small out, 37286
github.tar, level 7 row 2, advanced one pass small out, 38077
github.tar, level 7 row 1 with dict load, advanced one pass small out, 37445
github.tar, level 7 row 2, advanced one pass small out, 38235
github.tar, level 7 row 2 with dict dms, advanced one pass small out, 38012
github.tar, level 7 row 2 with dict dds, advanced one pass small out, 38014
github.tar, level 7 row 2 with dict copy, advanced one pass small out, 38101
github.tar, level 7 row 2 with dict load, advanced one pass small out, 37402
github.tar, level 7, advanced one pass small out, 38005
github.tar, level 7 row 2 with dict load, advanced one pass small out, 37552
github.tar, level 7, advanced one pass small out, 38168
github.tar, level 7 with dict, advanced one pass small out, 37839
github.tar, level 7 with dict dms, advanced one pass small out, 37832
github.tar, level 7 with dict dds, advanced one pass small out, 37857
github.tar, level 7 with dict copy, advanced one pass small out, 37839
github.tar, level 7 with dict load, advanced one pass small out, 37286
github.tar, level 7 with dict load, advanced one pass small out, 37445
github.tar, level 9, advanced one pass small out, 36723
github.tar, level 9 with dict, advanced one pass small out, 36531
github.tar, level 9 with dict dms, advanced one pass small out, 36615
@@ -851,33 +851,33 @@ github.tar, level 19 with dict dms, advanced
github.tar, level 19 with dict dds, advanced one pass small out, 32565
github.tar, level 19 with dict copy, advanced one pass small out, 32701
github.tar, level 19 with dict load, advanced one pass small out, 32428
github.tar, no source size, advanced one pass small out, 38884
github.tar, no source size with dict, advanced one pass small out, 37995
github.tar, long distance mode, advanced one pass small out, 40242
github.tar, multithreaded, advanced one pass small out, 38884
github.tar, multithreaded long distance mode, advanced one pass small out, 40223
github.tar, no source size, advanced one pass small out, 39073
github.tar, no source size with dict, advanced one pass small out, 38146
github.tar, long distance mode, advanced one pass small out, 40402
github.tar, multithreaded, advanced one pass small out, 39067
github.tar, multithreaded long distance mode, advanced one pass small out, 40377
github.tar, small window log, advanced one pass small out, 198535
github.tar, small hash log, advanced one pass small out, 129870
github.tar, small chain log, advanced one pass small out, 41669
github.tar, explicit params, advanced one pass small out, 41385
github.tar, uncompressed literals, advanced one pass small out, 41562
github.tar, explicit params, advanced one pass small out, 41605
github.tar, uncompressed literals, advanced one pass small out, 41709
github.tar, uncompressed literals optimal, advanced one pass small out, 35356
github.tar, huffman literals, advanced one pass small out, 38853
github.tar, multithreaded with advanced params, advanced one pass small out, 41562
silesia, level -5, advanced streaming, 6854744
silesia, level -3, advanced streaming, 6503319
silesia, level -1, advanced streaming, 6172207
silesia, level 0, advanced streaming, 4839431
silesia, level 1, advanced streaming, 5306388
silesia, level 3, advanced streaming, 4839431
silesia, level 4, advanced streaming, 4776557
silesia, level 5 row 1, advanced streaming, 4667668
silesia, level 5 row 2, advanced streaming, 4670326
silesia, level 5, advanced streaming, 4667668
silesia, level 6, advanced streaming, 4604351
silesia, level 7 row 1, advanced streaming, 4570271
silesia, level 7 row 2, advanced streaming, 4565169
silesia, level 7, advanced streaming, 4570271
github.tar, huffman literals, advanced one pass small out, 39099
github.tar, multithreaded with advanced params, advanced one pass small out, 41700
silesia, level -5, advanced streaming, 6856699
silesia, level -3, advanced streaming, 6505694
silesia, level -1, advanced streaming, 6174139
silesia, level 0, advanced streaming, 4839173
silesia, level 1, advanced streaming, 5305682
silesia, level 3, advanced streaming, 4839173
silesia, level 4, advanced streaming, 4776074
silesia, level 5 row 1, advanced streaming, 4667049
silesia, level 5 row 2, advanced streaming, 4669474
silesia, level 5, advanced streaming, 4667049
silesia, level 6, advanced streaming, 4602956
silesia, level 7 row 1, advanced streaming, 4568785
silesia, level 7 row 2, advanced streaming, 4563722
silesia, level 7, advanced streaming, 4568785
silesia, level 9, advanced streaming, 4545850
silesia, level 11 row 1, advanced streaming, 4505658
silesia, level 11 row 2, advanced streaming, 4503429
@@ -886,32 +886,32 @@ silesia, level 12 row 2, advanced
silesia, level 13, advanced streaming, 4493990
silesia, level 16, advanced streaming, 4359652
silesia, level 19, advanced streaming, 4266582
silesia, no source size, advanced streaming, 4839395
silesia, long distance mode, advanced streaming, 4831158
silesia, multithreaded, advanced streaming, 4839431
silesia, multithreaded long distance mode, advanced streaming, 4831176
silesia, no source size, advanced streaming, 4839137
silesia, long distance mode, advanced streaming, 4831125
silesia, multithreaded, advanced streaming, 4838949
silesia, multithreaded long distance mode, advanced streaming, 4830419
silesia, small window log, advanced streaming, 7110591
silesia, small hash log, advanced streaming, 6526141
silesia, small chain log, advanced streaming, 4912197
silesia, explicit params, advanced streaming, 4795857
silesia, uncompressed literals, advanced streaming, 5116957
silesia, explicit params, advanced streaming, 4795053
silesia, uncompressed literals, advanced streaming, 5117625
silesia, uncompressed literals optimal, advanced streaming, 4316880
silesia, huffman literals, advanced streaming, 5321370
silesia, multithreaded with advanced params, advanced streaming, 5116957
silesia.tar, level -5, advanced streaming, 6856523
silesia.tar, level -3, advanced streaming, 6505954
silesia.tar, level -1, advanced streaming, 6179056
silesia.tar, level 0, advanced streaming, 4858632
silesia.tar, level 1, advanced streaming, 5327708
silesia.tar, level 3, advanced streaming, 4858632
silesia.tar, level 4, advanced streaming, 4796895
silesia.tar, level 5 row 1, advanced streaming, 4679020
silesia.tar, level 5 row 2, advanced streaming, 4682355
silesia.tar, level 5, advanced streaming, 4679020
silesia.tar, level 6, advanced streaming, 4614558
silesia.tar, level 7 row 1, advanced streaming, 4579823
silesia.tar, level 7 row 2, advanced streaming, 4575601
silesia.tar, level 7, advanced streaming, 4579823
silesia, huffman literals, advanced streaming, 5321812
silesia, multithreaded with advanced params, advanced streaming, 5117795
silesia.tar, level -5, advanced streaming, 6857458
silesia.tar, level -3, advanced streaming, 6508562
silesia.tar, level -1, advanced streaming, 6178057
silesia.tar, level 0, advanced streaming, 4849720
silesia.tar, level 1, advanced streaming, 5311452
silesia.tar, level 3, advanced streaming, 4849720
silesia.tar, level 4, advanced streaming, 4787534
silesia.tar, level 5 row 1, advanced streaming, 4669420
silesia.tar, level 5 row 2, advanced streaming, 4673610
silesia.tar, level 5, advanced streaming, 4669420
silesia.tar, level 6, advanced streaming, 4604125
silesia.tar, level 7 row 1, advanced streaming, 4570206
silesia.tar, level 7 row 2, advanced streaming, 4565792
silesia.tar, level 7, advanced streaming, 4570206
silesia.tar, level 9, advanced streaming, 4555445
silesia.tar, level 11 row 1, advanced streaming, 4514959
silesia.tar, level 11 row 2, advanced streaming, 4513810
@@ -920,18 +920,18 @@ silesia.tar, level 12 row 2, advanced
silesia.tar, level 13, advanced streaming, 4502956
silesia.tar, level 16, advanced streaming, 4360385
silesia.tar, level 19, advanced streaming, 4260939
silesia.tar, no source size, advanced streaming, 4858628
silesia.tar, long distance mode, advanced streaming, 4837775
silesia.tar, multithreaded, advanced streaming, 4851478
silesia.tar, multithreaded long distance mode, advanced streaming, 4843155
silesia.tar, no source size, advanced streaming, 4849716
silesia.tar, long distance mode, advanced streaming, 4829339
silesia.tar, multithreaded, advanced streaming, 4841902
silesia.tar, multithreaded long distance mode, advanced streaming, 4834262
silesia.tar, small window log, advanced streaming, 7117024
silesia.tar, small hash log, advanced streaming, 6529209
silesia.tar, small chain log, advanced streaming, 4917021
silesia.tar, explicit params, advanced streaming, 4807288
silesia.tar, uncompressed literals, advanced streaming, 5126542
silesia.tar, explicit params, advanced streaming, 4797673
silesia.tar, uncompressed literals, advanced streaming, 5124811
silesia.tar, uncompressed literals optimal, advanced streaming, 4308451
silesia.tar, huffman literals, advanced streaming, 5341712
silesia.tar, multithreaded with advanced params, advanced streaming, 5118940
silesia.tar, huffman literals, advanced streaming, 5326278
silesia.tar, multithreaded with advanced params, advanced streaming, 5116442
github, level -5, advanced streaming, 204407
github, level -5 with dict, advanced streaming, 45832
github, level -3, advanced streaming, 193253
@@ -1057,74 +1057,74 @@ github, uncompressed literals, advanced
github, uncompressed literals optimal, advanced streaming, 152667
github, huffman literals, advanced streaming, 142365
github, multithreaded with advanced params, advanced streaming, 165909
github.tar, level -5, advanced streaming, 52152
github.tar, level -5 with dict, advanced streaming, 51181
github.tar, level -3, advanced streaming, 45678
github.tar, level -3 with dict, advanced streaming, 44734
github.tar, level -1, advanced streaming, 42560
github.tar, level -1 with dict, advanced streaming, 41353
github.tar, level 0, advanced streaming, 38884
github.tar, level 0 with dict, advanced streaming, 37995
github.tar, level 0 with dict dms, advanced streaming, 38114
github.tar, level 0 with dict dds, advanced streaming, 38114
github.tar, level 0 with dict copy, advanced streaming, 37995
github.tar, level 0 with dict load, advanced streaming, 37956
github.tar, level 1, advanced streaming, 39200
github.tar, level 1 with dict, advanced streaming, 38119
github.tar, level 1 with dict dms, advanced streaming, 38406
github.tar, level 1 with dict dds, advanced streaming, 38406
github.tar, level 1 with dict copy, advanced streaming, 38119
github.tar, level 1 with dict load, advanced streaming, 38364
github.tar, level 3, advanced streaming, 38884
github.tar, level 3 with dict, advanced streaming, 37995
github.tar, level 3 with dict dms, advanced streaming, 38114
github.tar, level 3 with dict dds, advanced streaming, 38114
github.tar, level 3 with dict copy, advanced streaming, 37995
github.tar, level 3 with dict load, advanced streaming, 37956
github.tar, level 4, advanced streaming, 38880
github.tar, level 4 with dict, advanced streaming, 37948
github.tar, level 4 with dict dms, advanced streaming, 37995
github.tar, level 4 with dict dds, advanced streaming, 37995
github.tar, level 4 with dict copy, advanced streaming, 37948
github.tar, level 4 with dict load, advanced streaming, 37927
github.tar, level 5 row 1, advanced streaming, 39651
github.tar, level 5 row 1 with dict dms, advanced streaming, 39043
github.tar, level 5 row 1 with dict dds, advanced streaming, 39069
github.tar, level 5 row 1 with dict copy, advanced streaming, 39145
github.tar, level 5 row 1 with dict load, advanced streaming, 39000
github.tar, level 5 row 2, advanced streaming, 39701
github.tar, level 5 row 2 with dict dms, advanced streaming, 39365
github.tar, level 5 row 2 with dict dds, advanced streaming, 39233
github.tar, level 5 row 2 with dict copy, advanced streaming, 39715
github.tar, level 5 row 2 with dict load, advanced streaming, 39158
github.tar, level 5, advanced streaming, 39651
github.tar, level 5 with dict, advanced streaming, 39145
github.tar, level 5 with dict dms, advanced streaming, 39043
github.tar, level 5 with dict dds, advanced streaming, 39069
github.tar, level 5 with dict copy, advanced streaming, 39145
github.tar, level 5 with dict load, advanced streaming, 39000
github.tar, level 6, advanced streaming, 39282
github.tar, level 6 with dict, advanced streaming, 38656
github.tar, level 6 with dict dms, advanced streaming, 38640
github.tar, level 6 with dict dds, advanced streaming, 38643
github.tar, level 6 with dict copy, advanced streaming, 38656
github.tar, level 6 with dict load, advanced streaming, 38647
github.tar, level 7 row 1, advanced streaming, 38005
github.tar, level -5, advanced streaming, 52384
github.tar, level -5 with dict, advanced streaming, 51420
github.tar, level -3, advanced streaming, 45907
github.tar, level -3 with dict, advanced streaming, 44973
github.tar, level -1, advanced streaming, 42777
github.tar, level -1 with dict, advanced streaming, 41603
github.tar, level 0, advanced streaming, 39249
github.tar, level 0 with dict, advanced streaming, 38309
github.tar, level 0 with dict dms, advanced streaming, 38445
github.tar, level 0 with dict dds, advanced streaming, 38445
github.tar, level 0 with dict copy, advanced streaming, 38309
github.tar, level 0 with dict load, advanced streaming, 38281
github.tar, level 1, advanced streaming, 39550
github.tar, level 1 with dict, advanced streaming, 38502
github.tar, level 1 with dict dms, advanced streaming, 38770
github.tar, level 1 with dict dds, advanced streaming, 38770
github.tar, level 1 with dict copy, advanced streaming, 38502
github.tar, level 1 with dict load, advanced streaming, 38716
github.tar, level 3, advanced streaming, 39249
github.tar, level 3 with dict, advanced streaming, 38309
github.tar, level 3 with dict dms, advanced streaming, 38445
github.tar, level 3 with dict dds, advanced streaming, 38445
github.tar, level 3 with dict copy, advanced streaming, 38309
github.tar, level 3 with dict load, advanced streaming, 38281
github.tar, level 4, advanced streaming, 39247
github.tar, level 4 with dict, advanced streaming, 38270
github.tar, level 4 with dict dms, advanced streaming, 38317
github.tar, level 4 with dict dds, advanced streaming, 38317
github.tar, level 4 with dict copy, advanced streaming, 38270
github.tar, level 4 with dict load, advanced streaming, 38259
github.tar, level 5 row 1, advanced streaming, 39986
github.tar, level 5 row 1 with dict dms, advanced streaming, 39370
github.tar, level 5 row 1 with dict dds, advanced streaming, 39396
github.tar, level 5 row 1 with dict copy, advanced streaming, 39465
github.tar, level 5 row 1 with dict load, advanced streaming, 39332
github.tar, level 5 row 2, advanced streaming, 40038
github.tar, level 5 row 2 with dict dms, advanced streaming, 39690
github.tar, level 5 row 2 with dict dds, advanced streaming, 39555
github.tar, level 5 row 2 with dict copy, advanced streaming, 40036
github.tar, level 5 row 2 with dict load, advanced streaming, 39498
github.tar, level 5, advanced streaming, 39986
github.tar, level 5 with dict, advanced streaming, 39465
github.tar, level 5 with dict dms, advanced streaming, 39370
github.tar, level 5 with dict dds, advanced streaming, 39396
github.tar, level 5 with dict copy, advanced streaming, 39465
github.tar, level 5 with dict load, advanced streaming, 39332
github.tar, level 6, advanced streaming, 39565
github.tar, level 6 with dict, advanced streaming, 38894
github.tar, level 6 with dict dms, advanced streaming, 38901
github.tar, level 6 with dict dds, advanced streaming, 38903
github.tar, level 6 with dict copy, advanced streaming, 38894
github.tar, level 6 with dict load, advanced streaming, 38906
github.tar, level 7 row 1, advanced streaming, 38295
github.tar, level 7 row 1 with dict dms, advanced streaming, 37832
github.tar, level 7 row 1 with dict dds, advanced streaming, 37857
github.tar, level 7 row 1 with dict copy, advanced streaming, 37839
github.tar, level 7 row 1 with dict load, advanced streaming, 37286
github.tar, level 7 row 2, advanced streaming, 38077
github.tar, level 7 row 1 with dict load, advanced streaming, 37565
github.tar, level 7 row 2, advanced streaming, 38369
github.tar, level 7 row 2 with dict dms, advanced streaming, 38012
github.tar, level 7 row 2 with dict dds, advanced streaming, 38014
github.tar, level 7 row 2 with dict copy, advanced streaming, 38101
github.tar, level 7 row 2 with dict load, advanced streaming, 37402
github.tar, level 7, advanced streaming, 38005
github.tar, level 7 row 2 with dict load, advanced streaming, 37688
github.tar, level 7, advanced streaming, 38295
github.tar, level 7 with dict, advanced streaming, 37839
github.tar, level 7 with dict dms, advanced streaming, 37832
github.tar, level 7 with dict dds, advanced streaming, 37857
github.tar, level 7 with dict copy, advanced streaming, 37839
github.tar, level 7 with dict load, advanced streaming, 37286
github.tar, level 7 with dict load, advanced streaming, 37565
github.tar, level 9, advanced streaming, 36723
github.tar, level 9 with dict, advanced streaming, 36531
github.tar, level 9 with dict dms, advanced streaming, 36615
@@ -1169,55 +1169,55 @@ github.tar, level 19 with dict dms, advanced
github.tar, level 19 with dict dds, advanced streaming, 32565
github.tar, level 19 with dict copy, advanced streaming, 32701
github.tar, level 19 with dict load, advanced streaming, 32428
github.tar, no source size, advanced streaming, 38881
github.tar, no source size with dict, advanced streaming, 38111
github.tar, long distance mode, advanced streaming, 40242
github.tar, multithreaded, advanced streaming, 38884
github.tar, multithreaded long distance mode, advanced streaming, 40223
github.tar, no source size, advanced streaming, 39246
github.tar, no source size with dict, advanced streaming, 38442
github.tar, long distance mode, advanced streaming, 40569
github.tar, multithreaded, advanced streaming, 39067
github.tar, multithreaded long distance mode, advanced streaming, 40377
github.tar, small window log, advanced streaming, 199553
github.tar, small hash log, advanced streaming, 129870
github.tar, small chain log, advanced streaming, 41669
github.tar, explicit params, advanced streaming, 41385
github.tar, uncompressed literals, advanced streaming, 41562
github.tar, explicit params, advanced streaming, 41768
github.tar, uncompressed literals, advanced streaming, 41784
github.tar, uncompressed literals optimal, advanced streaming, 35356
github.tar, huffman literals, advanced streaming, 38853
github.tar, multithreaded with advanced params, advanced streaming, 41562
silesia, level -5, old streaming, 6854744
silesia, level -3, old streaming, 6503319
silesia, level -1, old streaming, 6172207
silesia, level 0, old streaming, 4839431
silesia, level 1, old streaming, 5306388
silesia, level 3, old streaming, 4839431
silesia, level 4, old streaming, 4776557
silesia, level 5, old streaming, 4667668
silesia, level 6, old streaming, 4604351
silesia, level 7, old streaming, 4570271
github.tar, huffman literals, advanced streaming, 39226
github.tar, multithreaded with advanced params, advanced streaming, 41700
silesia, level -5, old streaming, 6856699
silesia, level -3, old streaming, 6505694
silesia, level -1, old streaming, 6174139
silesia, level 0, old streaming, 4839173
silesia, level 1, old streaming, 5305682
silesia, level 3, old streaming, 4839173
silesia, level 4, old streaming, 4776074
silesia, level 5, old streaming, 4667049
silesia, level 6, old streaming, 4602956
silesia, level 7, old streaming, 4568785
silesia, level 9, old streaming, 4545850
silesia, level 13, old streaming, 4493990
silesia, level 16, old streaming, 4359652
silesia, level 19, old streaming, 4266582
silesia, no source size, old streaming, 4839395
silesia, uncompressed literals, old streaming, 4839431
silesia, no source size, old streaming, 4839137
silesia, uncompressed literals, old streaming, 4839173
silesia, uncompressed literals optimal, old streaming, 4266582
silesia, huffman literals, old streaming, 6172207
silesia.tar, level -5, old streaming, 6856523
silesia.tar, level -3, old streaming, 6505954
silesia.tar, level -1, old streaming, 6179056
silesia.tar, level 0, old streaming, 4858632
silesia.tar, level 1, old streaming, 5327708
silesia.tar, level 3, old streaming, 4858632
silesia.tar, level 4, old streaming, 4796895
silesia.tar, level 5, old streaming, 4679020
silesia.tar, level 6, old streaming, 4614558
silesia.tar, level 7, old streaming, 4579823
silesia, huffman literals, old streaming, 6174139
silesia.tar, level -5, old streaming, 6857458
silesia.tar, level -3, old streaming, 6508562
silesia.tar, level -1, old streaming, 6178057
silesia.tar, level 0, old streaming, 4849720
silesia.tar, level 1, old streaming, 5311452
silesia.tar, level 3, old streaming, 4849720
silesia.tar, level 4, old streaming, 4787534
silesia.tar, level 5, old streaming, 4669420
silesia.tar, level 6, old streaming, 4604125
silesia.tar, level 7, old streaming, 4570206
silesia.tar, level 9, old streaming, 4555445
silesia.tar, level 13, old streaming, 4502956
silesia.tar, level 16, old streaming, 4360385
silesia.tar, level 19, old streaming, 4260939
silesia.tar, no source size, old streaming, 4858628
silesia.tar, uncompressed literals, old streaming, 4858632
silesia.tar, no source size, old streaming, 4849716
silesia.tar, uncompressed literals, old streaming, 4849720
silesia.tar, uncompressed literals optimal, old streaming, 4260939
silesia.tar, huffman literals, old streaming, 6179056
silesia.tar, huffman literals, old streaming, 6178057
github, level -5, old streaming, 204407
github, level -5 with dict, old streaming, 45832
github, level -3, old streaming, 193253
@@ -1251,25 +1251,25 @@ github, no source size with dict, old stre
github, uncompressed literals, old streaming, 136331
github, uncompressed literals optimal, old streaming, 132879
github, huffman literals, old streaming, 175468
github.tar, level -5, old streaming, 52152
github.tar, level -5 with dict, old streaming, 51181
github.tar, level -3, old streaming, 45678
github.tar, level -3 with dict, old streaming, 44734
github.tar, level -1, old streaming, 42560
github.tar, level -1 with dict, old streaming, 41353
github.tar, level 0, old streaming, 38884
github.tar, level 0 with dict, old streaming, 37995
github.tar, level 1, old streaming, 39200
github.tar, level 1 with dict, old streaming, 38119
github.tar, level 3, old streaming, 38884
github.tar, level 3 with dict, old streaming, 37995
github.tar, level 4, old streaming, 38880
github.tar, level 4 with dict, old streaming, 37948
github.tar, level 5, old streaming, 39651
github.tar, level 5 with dict, old streaming, 39145
github.tar, level 6, old streaming, 39282
github.tar, level 6 with dict, old streaming, 38656
github.tar, level 7, old streaming, 38005
github.tar, level -5, old streaming, 52384
github.tar, level -5 with dict, old streaming, 51420
github.tar, level -3, old streaming, 45907
github.tar, level -3 with dict, old streaming, 44973
github.tar, level -1, old streaming, 42777
github.tar, level -1 with dict, old streaming, 41603
github.tar, level 0, old streaming, 39249
github.tar, level 0 with dict, old streaming, 38309
github.tar, level 1, old streaming, 39550
github.tar, level 1 with dict, old streaming, 38502
github.tar, level 3, old streaming, 39249
github.tar, level 3 with dict, old streaming, 38309
github.tar, level 4, old streaming, 39247
github.tar, level 4 with dict, old streaming, 38270
github.tar, level 5, old streaming, 39986
github.tar, level 5 with dict, old streaming, 39465
github.tar, level 6, old streaming, 39565
github.tar, level 6 with dict, old streaming, 38894
github.tar, level 7, old streaming, 38295
github.tar, level 7 with dict, old streaming, 37839
github.tar, level 9, old streaming, 36723
github.tar, level 9 with dict, old streaming, 36531
@@ -1279,63 +1279,63 @@ github.tar, level 16, old stre
github.tar, level 16 with dict, old streaming, 33375
github.tar, level 19, old streaming, 32262
github.tar, level 19 with dict, old streaming, 32701
github.tar, no source size, old streaming, 38881
github.tar, no source size with dict, old streaming, 38111
github.tar, uncompressed literals, old streaming, 38884
github.tar, no source size, old streaming, 39246
github.tar, no source size with dict, old streaming, 38442
github.tar, uncompressed literals, old streaming, 39249
github.tar, uncompressed literals optimal, old streaming, 32262
github.tar, huffman literals, old streaming, 42560
silesia, level -5, old streaming advanced, 6854744
silesia, level -3, old streaming advanced, 6503319
silesia, level -1, old streaming advanced, 6172207
silesia, level 0, old streaming advanced, 4839431
silesia, level 1, old streaming advanced, 5306388
silesia, level 3, old streaming advanced, 4839431
silesia, level 4, old streaming advanced, 4776557
silesia, level 5, old streaming advanced, 4667668
silesia, level 6, old streaming advanced, 4604351
silesia, level 7, old streaming advanced, 4570271
github.tar, huffman literals, old streaming, 42777
silesia, level -5, old streaming advanced, 6856699
silesia, level -3, old streaming advanced, 6505694
silesia, level -1, old streaming advanced, 6174139
silesia, level 0, old streaming advanced, 4839173
silesia, level 1, old streaming advanced, 5305682
silesia, level 3, old streaming advanced, 4839173
silesia, level 4, old streaming advanced, 4776074
silesia, level 5, old streaming advanced, 4667049
silesia, level 6, old streaming advanced, 4602956
silesia, level 7, old streaming advanced, 4568785
silesia, level 9, old streaming advanced, 4545850
silesia, level 13, old streaming advanced, 4493990
silesia, level 16, old streaming advanced, 4359652
silesia, level 19, old streaming advanced, 4266582
silesia, no source size, old streaming advanced, 4839395
silesia, long distance mode, old streaming advanced, 4839431
silesia, multithreaded, old streaming advanced, 4839431
silesia, multithreaded long distance mode, old streaming advanced, 4839431
silesia, no source size, old streaming advanced, 4839137
silesia, long distance mode, old streaming advanced, 4839173
silesia, multithreaded, old streaming advanced, 4839173
silesia, multithreaded long distance mode, old streaming advanced, 4839173
silesia, small window log, old streaming advanced, 7110591
silesia, small hash log, old streaming advanced, 6526141
silesia, small chain log, old streaming advanced, 4912197
silesia, explicit params, old streaming advanced, 4795857
silesia, uncompressed literals, old streaming advanced, 4839431
silesia, explicit params, old streaming advanced, 4795053
silesia, uncompressed literals, old streaming advanced, 4839173
silesia, uncompressed literals optimal, old streaming advanced, 4266582
silesia, huffman literals, old streaming advanced, 6172207
silesia, multithreaded with advanced params, old streaming advanced, 4839431
silesia.tar, level -5, old streaming advanced, 6856523
silesia.tar, level -3, old streaming advanced, 6505954
silesia.tar, level -1, old streaming advanced, 6179056
silesia.tar, level 0, old streaming advanced, 4858632
silesia.tar, level 1, old streaming advanced, 5327708
silesia.tar, level 3, old streaming advanced, 4858632
silesia.tar, level 4, old streaming advanced, 4796895
silesia.tar, level 5, old streaming advanced, 4679020
silesia.tar, level 6, old streaming advanced, 4614558
silesia.tar, level 7, old streaming advanced, 4579823
silesia, huffman literals, old streaming advanced, 6174139
silesia, multithreaded with advanced params, old streaming advanced, 4839173
silesia.tar, level -5, old streaming advanced, 6857458
silesia.tar, level -3, old streaming advanced, 6508562
silesia.tar, level -1, old streaming advanced, 6178057
silesia.tar, level 0, old streaming advanced, 4849720
silesia.tar, level 1, old streaming advanced, 5311452
silesia.tar, level 3, old streaming advanced, 4849720
silesia.tar, level 4, old streaming advanced, 4787534
silesia.tar, level 5, old streaming advanced, 4669420
silesia.tar, level 6, old streaming advanced, 4604125
silesia.tar, level 7, old streaming advanced, 4570206
silesia.tar, level 9, old streaming advanced, 4555445
silesia.tar, level 13, old streaming advanced, 4502956
silesia.tar, level 16, old streaming advanced, 4360385
silesia.tar, level 19, old streaming advanced, 4260939
silesia.tar, no source size, old streaming advanced, 4858628
silesia.tar, long distance mode, old streaming advanced, 4858632
silesia.tar, multithreaded, old streaming advanced, 4858632
silesia.tar, multithreaded long distance mode, old streaming advanced, 4858632
silesia.tar, no source size, old streaming advanced, 4849716
silesia.tar, long distance mode, old streaming advanced, 4849720
silesia.tar, multithreaded, old streaming advanced, 4849720
silesia.tar, multithreaded long distance mode, old streaming advanced, 4849720
silesia.tar, small window log, old streaming advanced, 7117027
silesia.tar, small hash log, old streaming advanced, 6529209
silesia.tar, small chain log, old streaming advanced, 4917021
silesia.tar, explicit params, old streaming advanced, 4807288
silesia.tar, uncompressed literals, old streaming advanced, 4858632
silesia.tar, explicit params, old streaming advanced, 4797673
silesia.tar, uncompressed literals, old streaming advanced, 4849720
silesia.tar, uncompressed literals optimal, old streaming advanced, 4260939
silesia.tar, huffman literals, old streaming advanced, 6179056
silesia.tar, multithreaded with advanced params, old streaming advanced, 4858632
silesia.tar, huffman literals, old streaming advanced, 6178057
silesia.tar, multithreaded with advanced params, old streaming advanced, 4849720
github, level -5, old streaming advanced, 213265
github, level -5 with dict, old streaming advanced, 46708
github, level -3, old streaming advanced, 196126
@@ -1377,26 +1377,26 @@ github, uncompressed literals, old stre
github, uncompressed literals optimal, old streaming advanced, 132879
github, huffman literals, old streaming advanced, 181107
github, multithreaded with advanced params, old streaming advanced, 141101
github.tar, level -5, old streaming advanced, 52152
github.tar, level -5 with dict, old streaming advanced, 51129
github.tar, level -3, old streaming advanced, 45678
github.tar, level -3 with dict, old streaming advanced, 44986
github.tar, level -1, old streaming advanced, 42560
github.tar, level -1 with dict, old streaming advanced, 41650
github.tar, level 0, old streaming advanced, 38884
github.tar, level 0 with dict, old streaming advanced, 38013
github.tar, level 1, old streaming advanced, 39200
github.tar, level 1 with dict, old streaming advanced, 38359
github.tar, level 3, old streaming advanced, 38884
github.tar, level 3 with dict, old streaming advanced, 38013
github.tar, level 4, old streaming advanced, 38880
github.tar, level 4 with dict, old streaming advanced, 38063
github.tar, level 5, old streaming advanced, 39651
github.tar, level 5 with dict, old streaming advanced, 39018
github.tar, level 6, old streaming advanced, 39282
github.tar, level 6 with dict, old streaming advanced, 38635
github.tar, level 7, old streaming advanced, 38005
github.tar, level 7 with dict, old streaming advanced, 37264
github.tar, level -5, old streaming advanced, 52384
github.tar, level -5 with dict, old streaming advanced, 51359
github.tar, level -3, old streaming advanced, 45907
github.tar, level -3 with dict, old streaming advanced, 45211
github.tar, level -1, old streaming advanced, 42777
github.tar, level -1 with dict, old streaming advanced, 41865
github.tar, level 0, old streaming advanced, 39249
github.tar, level 0 with dict, old streaming advanced, 38327
github.tar, level 1, old streaming advanced, 39550
github.tar, level 1 with dict, old streaming advanced, 38714
github.tar, level 3, old streaming advanced, 39249
github.tar, level 3 with dict, old streaming advanced, 38327
github.tar, level 4, old streaming advanced, 39247
github.tar, level 4 with dict, old streaming advanced, 38382
github.tar, level 5, old streaming advanced, 39986
github.tar, level 5 with dict, old streaming advanced, 39347
github.tar, level 6, old streaming advanced, 39565
github.tar, level 6 with dict, old streaming advanced, 38889
github.tar, level 7, old streaming advanced, 38295
github.tar, level 7 with dict, old streaming advanced, 37534
github.tar, level 9, old streaming advanced, 36723
github.tar, level 9 with dict, old streaming advanced, 36241
github.tar, level 13, old streaming advanced, 35501
@@ -1405,19 +1405,19 @@ github.tar, level 16, old stre
github.tar, level 16 with dict, old streaming advanced, 38578
github.tar, level 19, old streaming advanced, 32262
github.tar, level 19 with dict, old streaming advanced, 32678
github.tar, no source size, old streaming advanced, 38881
github.tar, no source size with dict, old streaming advanced, 38076
github.tar, long distance mode, old streaming advanced, 38884
github.tar, multithreaded, old streaming advanced, 38884
github.tar, multithreaded long distance mode, old streaming advanced, 38884
github.tar, no source size, old streaming advanced, 39246
github.tar, no source size with dict, old streaming advanced, 38399
github.tar, long distance mode, old streaming advanced, 39249
github.tar, multithreaded, old streaming advanced, 39249
github.tar, multithreaded long distance mode, old streaming advanced, 39249
github.tar, small window log, old streaming advanced, 199556
github.tar, small hash log, old streaming advanced, 129870
github.tar, small chain log, old streaming advanced, 41669
github.tar, explicit params, old streaming advanced, 41385
github.tar, uncompressed literals, old streaming advanced, 38884
github.tar, explicit params, old streaming advanced, 41768
github.tar, uncompressed literals, old streaming advanced, 39249
github.tar, uncompressed literals optimal, old streaming advanced, 32262
github.tar, huffman literals, old streaming advanced, 42560
github.tar, multithreaded with advanced params, old streaming advanced, 38884
github.tar, huffman literals, old streaming advanced, 42777
github.tar, multithreaded with advanced params, old streaming advanced, 39249
github, level -5 with dict, old streaming cdict, 45832
github, level -3 with dict, old streaming cdict, 44671
github, level -1 with dict, old streaming cdict, 41825
@@ -1433,21 +1433,21 @@ github, level 13 with dict, old stre
github, level 16 with dict, old streaming cdict, 37902
github, level 19 with dict, old streaming cdict, 37916
github, no source size with dict, old streaming cdict, 40652
github.tar, level -5 with dict, old streaming cdict, 51286
github.tar, level -3 with dict, old streaming cdict, 45147
github.tar, level -1 with dict, old streaming cdict, 41865
github.tar, level 0 with dict, old streaming cdict, 37956
github.tar, level 1 with dict, old streaming cdict, 38364
github.tar, level 3 with dict, old streaming cdict, 37956
github.tar, level 4 with dict, old streaming cdict, 37927
github.tar, level 5 with dict, old streaming cdict, 39000
github.tar, level 6 with dict, old streaming cdict, 38647
github.tar, level 7 with dict, old streaming cdict, 37286
github.tar, level -5 with dict, old streaming cdict, 51512
github.tar, level -3 with dict, old streaming cdict, 45379
github.tar, level -1 with dict, old streaming cdict, 42084
github.tar, level 0 with dict, old streaming cdict, 38281
github.tar, level 1 with dict, old streaming cdict, 38716
github.tar, level 3 with dict, old streaming cdict, 38281
github.tar, level 4 with dict, old streaming cdict, 38259
github.tar, level 5 with dict, old streaming cdict, 39332
github.tar, level 6 with dict, old streaming cdict, 38906
github.tar, level 7 with dict, old streaming cdict, 37565
github.tar, level 9 with dict, old streaming cdict, 36322
github.tar, level 13 with dict, old streaming cdict, 36010
github.tar, level 16 with dict, old streaming cdict, 39081
github.tar, level 19 with dict, old streaming cdict, 32428
github.tar, no source size with dict, old streaming cdict, 38111
github.tar, no source size with dict, old streaming cdict, 38442
github, level -5 with dict, old streaming advanced cdict, 46708
github, level -3 with dict, old streaming advanced cdict, 45476
github, level -1 with dict, old streaming advanced cdict, 42060
@@ -1463,18 +1463,18 @@ github, level 13 with dict, old stre
github, level 16 with dict, old streaming advanced cdict, 40804
github, level 19 with dict, old streaming advanced cdict, 37916
github, no source size with dict, old streaming advanced cdict, 40608
github.tar, level -5 with dict, old streaming advanced cdict, 50791
github.tar, level -3 with dict, old streaming advanced cdict, 44926
github.tar, level -1 with dict, old streaming advanced cdict, 41482
github.tar, level 0 with dict, old streaming advanced cdict, 38013
github.tar, level 1 with dict, old streaming advanced cdict, 38168
github.tar, level 3 with dict, old streaming advanced cdict, 38013
github.tar, level 4 with dict, old streaming advanced cdict, 38063
github.tar, level 5 with dict, old streaming advanced cdict, 39018
github.tar, level 6 with dict, old streaming advanced cdict, 38635
github.tar, level 7 with dict, old streaming advanced cdict, 37264
github.tar, level -5 with dict, old streaming advanced cdict, 51019
github.tar, level -3 with dict, old streaming advanced cdict, 45149
github.tar, level -1 with dict, old streaming advanced cdict, 41694
github.tar, level 0 with dict, old streaming advanced cdict, 38327
github.tar, level 1 with dict, old streaming advanced cdict, 38513
github.tar, level 3 with dict, old streaming advanced cdict, 38327
github.tar, level 4 with dict, old streaming advanced cdict, 38382
github.tar, level 5 with dict, old streaming advanced cdict, 39347
github.tar, level 6 with dict, old streaming advanced cdict, 38889
github.tar, level 7 with dict, old streaming advanced cdict, 37534
github.tar, level 9 with dict, old streaming advanced cdict, 36241
github.tar, level 13 with dict, old streaming advanced cdict, 35807
github.tar, level 16 with dict, old streaming advanced cdict, 38578
github.tar, level 19 with dict, old streaming advanced cdict, 32678
github.tar, no source size with dict, old streaming advanced cdict, 38076
github.tar, no source size with dict, old streaming advanced cdict, 38399
1 Data Config Method Total compressed size
2 silesia.tar level -5 compress simple 6861055 6860782
3 silesia.tar level -3 compress simple 6505483 6507448
4 silesia.tar level -1 compress simple 6179047 6175582
5 silesia.tar level 0 compress simple 4851407 4843429
6 silesia.tar level 1 compress simple 5327717 5316794
7 silesia.tar level 3 compress simple 4851407 4843429
8 silesia.tar level 4 compress simple 4788821 4780657
9 silesia.tar level 5 compress simple 4679004 4669650
10 silesia.tar level 6 compress simple 4614561 4604925
11 silesia.tar level 7 compress simple 4579828 4570873
12 silesia.tar level 9 compress simple 4555448 4537558
13 silesia.tar level 13 compress simple 4502956 4484732
14 silesia.tar level 16 compress simple 4360385 4355572
15 silesia.tar level 19 compress simple 4260939 4257629
16 silesia.tar uncompressed literals compress simple 4851407 4843429
17 silesia.tar uncompressed literals optimal compress simple 4260939 4257629
18 silesia.tar huffman literals compress simple 6179047 6175582
19 github.tar level -5 compress simple 52115 52320
20 github.tar level -3 compress simple 45678 45823
21 github.tar level -1 compress simple 42560 42740
22 github.tar level 0 compress simple 38884 39073
23 github.tar level 1 compress simple 39200 39444
24 github.tar level 3 compress simple 38884 39073
25 github.tar level 4 compress simple 38880 39068
26 github.tar level 5 compress simple 39651 39808
27 github.tar level 6 compress simple 39282 39455
28 github.tar level 7 compress simple 38005 38168
29 github.tar level 9 compress simple 36723
30 github.tar level 13 compress simple 35501
31 github.tar level 16 compress simple 40466
32 github.tar level 19 compress simple 32262
33 github.tar uncompressed literals compress simple 38884 39073
34 github.tar uncompressed literals optimal compress simple 32262
35 github.tar huffman literals compress simple 42560 42740
36 silesia level -5 compress cctx 6857372 6857776
37 silesia level -3 compress cctx 6503412 6504756
38 silesia level -1 compress cctx 6172202 6174127
39 silesia level 0 compress cctx 4839431 4838417
40 silesia level 1 compress cctx 5306632 5306931
41 silesia level 3 compress cctx 4839431 4838417
42 silesia level 4 compress cctx 4776557 4775359
43 silesia level 5 compress cctx 4667668 4666524
44 silesia level 6 compress cctx 4604351 4602031
45 silesia level 7 compress cctx 4570271 4567954
46 silesia level 9 compress cctx 4545850 4540520
47 silesia level 13 compress cctx 4493990 4488969
48 silesia level 16 compress cctx 4359652 4356799
49 silesia level 19 compress cctx 4266582 4265851
50 silesia long distance mode compress cctx 4839431 4838417
51 silesia multithreaded compress cctx 4839431 4838417
52 silesia multithreaded long distance mode compress cctx 4839431 4838417
53 silesia small window log compress cctx 7082907
54 silesia small hash log compress cctx 6526141 6525510
55 silesia small chain log compress cctx 4912197 4912248
56 silesia explicit params compress cctx 4794318 4792640
57 silesia uncompressed literals compress cctx 4839431 4838417
58 silesia uncompressed literals optimal compress cctx 4266582 4265851
59 silesia huffman literals compress cctx 6172202 6174127
60 silesia multithreaded with advanced params compress cctx 4839431 4838417
61 github level -5 compress cctx 204407
62 github level -5 with dict compress cctx 47581
63 github level -3 compress cctx 193253
97 github uncompressed literals optimal compress cctx 132879
98 github huffman literals compress cctx 175468
99 github multithreaded with advanced params compress cctx 141069
100 silesia level -5 zstdcli 6857420 6856073
101 silesia level -3 zstdcli 6503460 6505580
102 silesia level -1 zstdcli 6172250 6172649
103 silesia level 0 zstdcli 4839479 4838997
104 silesia level 1 zstdcli 5306680 5306179
105 silesia level 3 zstdcli 4839479 4838997
106 silesia level 4 zstdcli 4776605 4775769
107 silesia level 5 zstdcli 4667716 4666931
108 silesia level 6 zstdcli 4604399 4602509
109 silesia level 7 zstdcli 4570319 4568265
110 silesia level 9 zstdcli 4545898 4540123
111 silesia level 13 zstdcli 4494038 4488478
112 silesia level 16 zstdcli 4359700 4358150
113 silesia level 19 zstdcli 4266630 4265929
114 silesia long distance mode zstdcli 4831224 4830467
115 silesia multithreaded zstdcli 4839479 4838997
116 silesia multithreaded long distance mode zstdcli 4831224 4830467
117 silesia small window log zstdcli 7094528
118 silesia small hash log zstdcli 6526189 6527214
119 silesia small chain log zstdcli 4912245 4911647
120 silesia explicit params zstdcli 4795840 4794378
121 silesia uncompressed literals zstdcli 5117005 5117843
122 silesia uncompressed literals optimal zstdcli 4316928 4316761
123 silesia huffman literals zstdcli 5321417 5320793
124 silesia multithreaded with advanced params zstdcli 5117005 5117843
125 silesia.tar level -5 zstdcli 6862049 6860173
126 silesia.tar level -3 zstdcli 6506509 6507196
127 silesia.tar level -1 zstdcli 6179789 6177719
128 silesia.tar level 0 zstdcli 4851482 4841906
129 silesia.tar level 1 zstdcli 5329010 5313917
130 silesia.tar level 3 zstdcli 4851482 4841906
131 silesia.tar level 4 zstdcli 4789729 4780121
132 silesia.tar level 5 zstdcli 4679860 4671144
133 silesia.tar level 6 zstdcli 4615355 4606407
134 silesia.tar level 7 zstdcli 4581791 4572666
135 silesia.tar level 9 zstdcli 4555452 4542599
136 silesia.tar level 13 zstdcli 4502960 4489976
137 silesia.tar level 16 zstdcli 4360389 4356959
138 silesia.tar level 19 zstdcli 4260943 4259787
139 silesia.tar no source size zstdcli 4851478 4841902
140 silesia.tar long distance mode zstdcli 4843159 4834266
141 silesia.tar multithreaded zstdcli 4851482 4841906
142 silesia.tar multithreaded long distance mode zstdcli 4843159 4834266
143 silesia.tar small window log zstdcli 7100110
144 silesia.tar small hash log zstdcli 6529264 6530007
145 silesia.tar small chain log zstdcli 4917022 4916091
146 silesia.tar explicit params zstdcli 4821112 4809323
147 silesia.tar uncompressed literals zstdcli 5118944 5116446
148 silesia.tar uncompressed literals optimal zstdcli 4308455 4306844
149 silesia.tar huffman literals zstdcli 5342074 5326463
150 silesia.tar multithreaded with advanced params zstdcli 5118944 5116446
151 github level -5 zstdcli 206407
152 github level -5 with dict zstdcli 47832
153 github level -3 zstdcli 195253
187 github uncompressed literals optimal zstdcli 154667
188 github huffman literals zstdcli 144365
189 github multithreaded with advanced params zstdcli 167909
190 github.tar level -5 zstdcli 52119 52308
191 github.tar level -5 with dict zstdcli 51101 51318
192 github.tar level -3 zstdcli 45682 45815
193 github.tar level -3 with dict zstdcli 44738 44883
194 github.tar level -1 zstdcli 42564 42688
195 github.tar level -1 with dict zstdcli 41357 41510
196 github.tar level 0 zstdcli 38888 39071
197 github.tar level 0 with dict zstdcli 37999 38140
198 github.tar level 1 zstdcli 39204 39404
199 github.tar level 1 with dict zstdcli 38123 38320
200 github.tar level 3 zstdcli 38888 39071
201 github.tar level 3 with dict zstdcli 37999 38140
202 github.tar level 4 zstdcli 38884 39067
203 github.tar level 4 with dict zstdcli 37952 38082
204 github.tar level 5 zstdcli 39655 39815
205 github.tar level 5 with dict zstdcli 39073 39221
206 github.tar level 6 zstdcli 39286 39455
207 github.tar level 6 with dict zstdcli 38647 38787
208 github.tar level 7 zstdcli 38009 38177
209 github.tar level 7 with dict zstdcli 37861
210 github.tar level 9 zstdcli 36727
211 github.tar level 9 with dict zstdcli 36686
215 github.tar level 16 with dict zstdcli 33379
216 github.tar level 19 zstdcli 32266
217 github.tar level 19 with dict zstdcli 32705
218 github.tar no source size zstdcli 38885 39068
219 github.tar no source size with dict zstdcli 38115 38274
220 github.tar long distance mode zstdcli 40227 40381
221 github.tar multithreaded zstdcli 38888 39071
222 github.tar multithreaded long distance mode zstdcli 40227 40381
223 github.tar small window log zstdcli 198539
224 github.tar small hash log zstdcli 129874
225 github.tar small chain log zstdcli 41673
226 github.tar explicit params zstdcli 41385 41588
227 github.tar uncompressed literals zstdcli 41566 41704
228 github.tar uncompressed literals optimal zstdcli 35360
229 github.tar huffman literals zstdcli 38857 39046
230 github.tar multithreaded with advanced params zstdcli 41566 41704
231 silesia level -5 advanced one pass 6857372 6857776
232 silesia level -3 advanced one pass 6503412 6504756
233 silesia level -1 advanced one pass 6172202 6174127
234 silesia level 0 advanced one pass 4839431 4838417
235 silesia level 1 advanced one pass 5306632 5306931
236 silesia level 3 advanced one pass 4839431 4838417
237 silesia level 4 advanced one pass 4776557 4775359
238 silesia level 5 row 1 advanced one pass 4667668 4666524
239 silesia level 5 row 2 advanced one pass 4670326 4668976
240 silesia level 5 advanced one pass 4667668 4666524
241 silesia level 6 advanced one pass 4604351 4602031
242 silesia level 7 row 1 advanced one pass 4570271 4567954
243 silesia level 7 row 2 advanced one pass 4565169 4562774
244 silesia level 7 advanced one pass 4570271 4567954
245 silesia level 9 advanced one pass 4545850 4540520
246 silesia level 11 row 1 advanced one pass 4505658 4500472
247 silesia level 11 row 2 advanced one pass 4503429 4498174
248 silesia level 12 row 1 advanced one pass 4505658 4500472
249 silesia level 12 row 2 advanced one pass 4503429 4498174
250 silesia level 13 advanced one pass 4493990 4488969
251 silesia level 16 advanced one pass 4359652 4356799
252 silesia level 19 advanced one pass 4266582 4265851
253 silesia no source size advanced one pass 4839431 4838417
254 silesia long distance mode advanced one pass 4831158 4830097
255 silesia multithreaded advanced one pass 4839431 4838949
256 silesia multithreaded long distance mode advanced one pass 4831176 4830419
257 silesia small window log advanced one pass 7094480
258 silesia small hash log advanced one pass 6526141 6525510
259 silesia small chain log advanced one pass 4912197 4912248
260 silesia explicit params advanced one pass 4795840 4794219
261 silesia uncompressed literals advanced one pass 5116957 5117482
262 silesia uncompressed literals optimal advanced one pass 4316880 4316644
263 silesia huffman literals advanced one pass 5321369 5321686
264 silesia multithreaded with advanced params advanced one pass 5116957 5117795
265 silesia.tar level -5 advanced one pass 6861055 6860782
266 silesia.tar level -3 advanced one pass 6505483 6507448
267 silesia.tar level -1 advanced one pass 6179047 6175582
268 silesia.tar level 0 advanced one pass 4851407 4843429
269 silesia.tar level 1 advanced one pass 5327717 5316794
270 silesia.tar level 3 advanced one pass 4851407 4843429
271 silesia.tar level 4 advanced one pass 4788821 4780657
272 silesia.tar level 5 row 1 advanced one pass 4679004 4669650
273 silesia.tar level 5 row 2 advanced one pass 4682334 4673119
274 silesia.tar level 5 advanced one pass 4679004 4669650
275 silesia.tar level 6 advanced one pass 4614561 4604925
276 silesia.tar level 7 row 1 advanced one pass 4579828 4570873
277 silesia.tar level 7 row 2 advanced one pass 4575602 4566314
278 silesia.tar level 7 advanced one pass 4579828 4570873
279 silesia.tar level 9 advanced one pass 4555448 4537558
280 silesia.tar level 11 row 1 advanced one pass 4514962 4496590
281 silesia.tar level 11 row 2 advanced one pass 4513816 4495225
282 silesia.tar level 12 row 1 advanced one pass 4514517 4496084
283 silesia.tar level 12 row 2 advanced one pass 4514007 4495434
284 silesia.tar level 13 advanced one pass 4502956 4484732
285 silesia.tar level 16 advanced one pass 4360385 4355572
286 silesia.tar level 19 advanced one pass 4260939 4257629
287 silesia.tar no source size advanced one pass 4851407 4843429
288 silesia.tar long distance mode advanced one pass 4837775 4830453
289 silesia.tar multithreaded advanced one pass 4851478 4841902
290 silesia.tar multithreaded long distance mode advanced one pass 4843155 4834262
291 silesia.tar small window log advanced one pass 7100064
292 silesia.tar small hash log advanced one pass 6529206 6530222
293 silesia.tar small chain log advanced one pass 4917041 4915689
294 silesia.tar explicit params advanced one pass 4807274 4797958
295 silesia.tar uncompressed literals advanced one pass 5118848 5116329
296 silesia.tar uncompressed literals optimal advanced one pass 4308451 4306289
297 silesia.tar huffman literals advanced one pass 5341705 5331382
298 silesia.tar multithreaded with advanced params advanced one pass 5118940 5116442
299 github level -5 advanced one pass 204407
300 github level -5 with dict advanced one pass 45832
301 github level -3 advanced one pass 193253
421 github uncompressed literals optimal advanced one pass 152667
422 github huffman literals advanced one pass 142365
423 github multithreaded with advanced params advanced one pass 165909
424 github.tar level -5 advanced one pass 52115 52320
425 github.tar level -5 with dict advanced one pass 51097 51321
426 github.tar level -3 advanced one pass 45678 45823
427 github.tar level -3 with dict advanced one pass 44734 44882
428 github.tar level -1 advanced one pass 42560 42740
429 github.tar level -1 with dict advanced one pass 41353 41506
430 github.tar level 0 advanced one pass 38884 39073
431 github.tar level 0 with dict advanced one pass 37995 38146
432 github.tar level 0 with dict dms advanced one pass 38114 38262
433 github.tar level 0 with dict dds advanced one pass 38114 38262
434 github.tar level 0 with dict copy advanced one pass 37995 38146
435 github.tar level 0 with dict load advanced one pass 37956 38107
436 github.tar level 1 advanced one pass 39200 39444
437 github.tar level 1 with dict advanced one pass 38119 38338
438 github.tar level 1 with dict dms advanced one pass 38406 38641
439 github.tar level 1 with dict dds advanced one pass 38406 38641
440 github.tar level 1 with dict copy advanced one pass 38119 38338
441 github.tar level 1 with dict load advanced one pass 38364 38592
442 github.tar level 3 advanced one pass 38884 39073
443 github.tar level 3 with dict advanced one pass 37995 38146
444 github.tar level 3 with dict dms advanced one pass 38114 38262
445 github.tar level 3 with dict dds advanced one pass 38114 38262
446 github.tar level 3 with dict copy advanced one pass 37995 38146
447 github.tar level 3 with dict load advanced one pass 37956 38107
448 github.tar level 4 advanced one pass 38880 39068
449 github.tar level 4 with dict advanced one pass 37948 38081
450 github.tar level 4 with dict dms advanced one pass 37995 38135
451 github.tar level 4 with dict dds advanced one pass 37995 38135
452 github.tar level 4 with dict copy advanced one pass 37948 38081
453 github.tar level 4 with dict load advanced one pass 37927 38088
454 github.tar level 5 row 1 advanced one pass 39651 39808
455 github.tar level 5 row 1 with dict dms advanced one pass 39043 39185
456 github.tar level 5 row 1 with dict dds advanced one pass 39069 39213
457 github.tar level 5 row 1 with dict copy advanced one pass 39145 39284
458 github.tar level 5 row 1 with dict load advanced one pass 39000 39155
459 github.tar level 5 row 2 advanced one pass 39701 39851
460 github.tar level 5 row 2 with dict dms advanced one pass 39365 39498
461 github.tar level 5 row 2 with dict dds advanced one pass 39233 39364
462 github.tar level 5 row 2 with dict copy advanced one pass 39715 39843
463 github.tar level 5 row 2 with dict load advanced one pass 39158 39312
464 github.tar level 5 advanced one pass 39651 39808
465 github.tar level 5 with dict advanced one pass 39145 39284
466 github.tar level 5 with dict dms advanced one pass 39043 39185
467 github.tar level 5 with dict dds advanced one pass 39069 39213
468 github.tar level 5 with dict copy advanced one pass 39145 39284
469 github.tar level 5 with dict load advanced one pass 39000 39155
470 github.tar level 6 advanced one pass 39282 39455
471 github.tar level 6 with dict advanced one pass 38656 38808
472 github.tar level 6 with dict dms advanced one pass 38640 38792
473 github.tar level 6 with dict dds advanced one pass 38643 38790
474 github.tar level 6 with dict copy advanced one pass 38656 38808
475 github.tar level 6 with dict load advanced one pass 38647 38796
476 github.tar level 7 row 1 advanced one pass 38005 38168
477 github.tar level 7 row 1 with dict dms advanced one pass 37832
478 github.tar level 7 row 1 with dict dds advanced one pass 37857
479 github.tar level 7 row 1 with dict copy advanced one pass 37839
480 github.tar level 7 row 1 with dict load advanced one pass 37286 37445
481 github.tar level 7 row 2 advanced one pass 38077 38235
482 github.tar level 7 row 2 with dict dms advanced one pass 38012
483 github.tar level 7 row 2 with dict dds advanced one pass 38014
484 github.tar level 7 row 2 with dict copy advanced one pass 38101
485 github.tar level 7 row 2 with dict load advanced one pass 37402 37552
486 github.tar level 7 advanced one pass 38005 38168
487 github.tar level 7 with dict advanced one pass 37839
488 github.tar level 7 with dict dms advanced one pass 37832
489 github.tar level 7 with dict dds advanced one pass 37857
490 github.tar level 7 with dict copy advanced one pass 37839
491 github.tar level 7 with dict load advanced one pass 37286 37445
492 github.tar level 9 advanced one pass 36723
493 github.tar level 9 with dict advanced one pass 36531
494 github.tar level 9 with dict dms advanced one pass 36615
533 github.tar level 19 with dict dds advanced one pass 32565
534 github.tar level 19 with dict copy advanced one pass 32701
535 github.tar level 19 with dict load advanced one pass 32428
536 github.tar no source size advanced one pass 38884 39073
537 github.tar no source size with dict advanced one pass 37995 38146
538 github.tar long distance mode advanced one pass 40242 40402
539 github.tar multithreaded advanced one pass 38884 39067
540 github.tar multithreaded long distance mode advanced one pass 40223 40377
541 github.tar small window log advanced one pass 198535
542 github.tar small hash log advanced one pass 129870
543 github.tar small chain log advanced one pass 41669
544 github.tar explicit params advanced one pass 41385 41605
545 github.tar uncompressed literals advanced one pass 41562 41709
546 github.tar uncompressed literals optimal advanced one pass 35356
547 github.tar huffman literals advanced one pass 38853 39099
548 github.tar multithreaded with advanced params advanced one pass 41562 41700
549 silesia level -5 advanced one pass small out 6857372 6857776
550 silesia level -3 advanced one pass small out 6503412 6504756
551 silesia level -1 advanced one pass small out 6172202 6174127
552 silesia level 0 advanced one pass small out 4839431 4838417
553 silesia level 1 advanced one pass small out 5306632 5306931
554 silesia level 3 advanced one pass small out 4839431 4838417
555 silesia level 4 advanced one pass small out 4776557 4775359
556 silesia level 5 row 1 advanced one pass small out 4667668 4666524
557 silesia level 5 row 2 advanced one pass small out 4670326 4668976
558 silesia level 5 advanced one pass small out 4667668 4666524
559 silesia level 6 advanced one pass small out 4604351 4602031
560 silesia level 7 row 1 advanced one pass small out 4570271 4567954
561 silesia level 7 row 2 advanced one pass small out 4565169 4562774
562 silesia level 7 advanced one pass small out 4570271 4567954
563 silesia level 9 advanced one pass small out 4545850 4540520
564 silesia level 11 row 1 advanced one pass small out 4505658 4500472
565 silesia level 11 row 2 advanced one pass small out 4503429 4498174
566 silesia level 12 row 1 advanced one pass small out 4505658 4500472
567 silesia level 12 row 2 advanced one pass small out 4503429 4498174
568 silesia level 13 advanced one pass small out 4493990 4488969
569 silesia level 16 advanced one pass small out 4359652 4356799
570 silesia level 19 advanced one pass small out 4266582 4265851
571 silesia no source size advanced one pass small out 4839431 4838417
572 silesia long distance mode advanced one pass small out 4831158 4830097
573 silesia multithreaded advanced one pass small out 4839431 4838949
574 silesia multithreaded long distance mode advanced one pass small out 4831176 4830419
575 silesia small window log advanced one pass small out 7094480
576 silesia small hash log advanced one pass small out 6526141 6525510
577 silesia small chain log advanced one pass small out 4912197 4912248
578 silesia explicit params advanced one pass small out 4795840 4794219
579 silesia uncompressed literals advanced one pass small out 5116957 5117482
580 silesia uncompressed literals optimal advanced one pass small out 4316880 4316644
581 silesia huffman literals advanced one pass small out 5321369 5321686
582 silesia multithreaded with advanced params advanced one pass small out 5116957 5117795
583 silesia.tar level -5 advanced one pass small out 6861055 6860782
584 silesia.tar level -3 advanced one pass small out 6505483 6507448
585 silesia.tar level -1 advanced one pass small out 6179047 6175582
586 silesia.tar level 0 advanced one pass small out 4851407 4843429
587 silesia.tar level 1 advanced one pass small out 5327717 5316794
588 silesia.tar level 3 advanced one pass small out 4851407 4843429
589 silesia.tar level 4 advanced one pass small out 4788821 4780657
590 silesia.tar level 5 row 1 advanced one pass small out 4679004 4669650
591 silesia.tar level 5 row 2 advanced one pass small out 4682334 4673119
592 silesia.tar level 5 advanced one pass small out 4679004 4669650
593 silesia.tar level 6 advanced one pass small out 4614561 4604925
594 silesia.tar level 7 row 1 advanced one pass small out 4579828 4570873
595 silesia.tar level 7 row 2 advanced one pass small out 4575602 4566314
596 silesia.tar level 7 advanced one pass small out 4579828 4570873
597 silesia.tar level 9 advanced one pass small out 4555448 4537558
598 silesia.tar level 11 row 1 advanced one pass small out 4514962 4496590
599 silesia.tar level 11 row 2 advanced one pass small out 4513816 4495225
600 silesia.tar level 12 row 1 advanced one pass small out 4514517 4496084
601 silesia.tar level 12 row 2 advanced one pass small out 4514007 4495434
602 silesia.tar level 13 advanced one pass small out 4502956 4484732
603 silesia.tar level 16 advanced one pass small out 4360385 4355572
604 silesia.tar level 19 advanced one pass small out 4260939 4257629
605 silesia.tar no source size advanced one pass small out 4851407 4843429
606 silesia.tar long distance mode advanced one pass small out 4837775 4830453
607 silesia.tar multithreaded advanced one pass small out 4851478 4841902
608 silesia.tar multithreaded long distance mode advanced one pass small out 4843155 4834262
609 silesia.tar small window log advanced one pass small out 7100064
610 silesia.tar small hash log advanced one pass small out 6529206 6530222
611 silesia.tar small chain log advanced one pass small out 4917041 4915689
612 silesia.tar explicit params advanced one pass small out 4807274 4797958
613 silesia.tar uncompressed literals advanced one pass small out 5118848 5116329
614 silesia.tar uncompressed literals optimal advanced one pass small out 4308451 4306289
615 silesia.tar huffman literals advanced one pass small out 5341705 5331382
616 silesia.tar multithreaded with advanced params advanced one pass small out 5118940 5116442
617 github level -5 advanced one pass small out 204407
618 github level -5 with dict advanced one pass small out 45832
619 github level -3 advanced one pass small out 193253
739 github uncompressed literals optimal advanced one pass small out 152667
740 github huffman literals advanced one pass small out 142365
741 github multithreaded with advanced params advanced one pass small out 165909
742 github.tar level -5 advanced one pass small out 52115 52320
743 github.tar level -5 with dict advanced one pass small out 51097 51321
744 github.tar level -3 advanced one pass small out 45678 45823
745 github.tar level -3 with dict advanced one pass small out 44734 44882
746 github.tar level -1 advanced one pass small out 42560 42740
747 github.tar level -1 with dict advanced one pass small out 41353 41506
748 github.tar level 0 advanced one pass small out 38884 39073
749 github.tar level 0 with dict advanced one pass small out 37995 38146
750 github.tar level 0 with dict dms advanced one pass small out 38114 38262
751 github.tar level 0 with dict dds advanced one pass small out 38114 38262
752 github.tar level 0 with dict copy advanced one pass small out 37995 38146
753 github.tar level 0 with dict load advanced one pass small out 37956 38107
754 github.tar level 1 advanced one pass small out 39200 39444
755 github.tar level 1 with dict advanced one pass small out 38119 38338
756 github.tar level 1 with dict dms advanced one pass small out 38406 38641
757 github.tar level 1 with dict dds advanced one pass small out 38406 38641
758 github.tar level 1 with dict copy advanced one pass small out 38119 38338
759 github.tar level 1 with dict load advanced one pass small out 38364 38592
760 github.tar level 3 advanced one pass small out 38884 39073
761 github.tar level 3 with dict advanced one pass small out 37995 38146
762 github.tar level 3 with dict dms advanced one pass small out 38114 38262
763 github.tar level 3 with dict dds advanced one pass small out 38114 38262
764 github.tar level 3 with dict copy advanced one pass small out 37995 38146
765 github.tar level 3 with dict load advanced one pass small out 37956 38107
766 github.tar level 4 advanced one pass small out 38880 39068
767 github.tar level 4 with dict advanced one pass small out 37948 38081
768 github.tar level 4 with dict dms advanced one pass small out 37995 38135
769 github.tar level 4 with dict dds advanced one pass small out 37995 38135
770 github.tar level 4 with dict copy advanced one pass small out 37948 38081
771 github.tar level 4 with dict load advanced one pass small out 37927 38088
772 github.tar level 5 row 1 advanced one pass small out 39651 39808
773 github.tar level 5 row 1 with dict dms advanced one pass small out 39043 39185
774 github.tar level 5 row 1 with dict dds advanced one pass small out 39069 39213
775 github.tar level 5 row 1 with dict copy advanced one pass small out 39145 39284
776 github.tar level 5 row 1 with dict load advanced one pass small out 39000 39155
777 github.tar level 5 row 2 advanced one pass small out 39701 39851
778 github.tar level 5 row 2 with dict dms advanced one pass small out 39365 39498
779 github.tar level 5 row 2 with dict dds advanced one pass small out 39233 39364
780 github.tar level 5 row 2 with dict copy advanced one pass small out 39715 39843
781 github.tar level 5 row 2 with dict load advanced one pass small out 39158 39312
782 github.tar level 5 advanced one pass small out 39651 39808
783 github.tar level 5 with dict advanced one pass small out 39145 39284
784 github.tar level 5 with dict dms advanced one pass small out 39043 39185
785 github.tar level 5 with dict dds advanced one pass small out 39069 39213
786 github.tar level 5 with dict copy advanced one pass small out 39145 39284
787 github.tar level 5 with dict load advanced one pass small out 39000 39155
788 github.tar level 6 advanced one pass small out 39282 39455
789 github.tar level 6 with dict advanced one pass small out 38656 38808
790 github.tar level 6 with dict dms advanced one pass small out 38640 38792
791 github.tar level 6 with dict dds advanced one pass small out 38643 38790
792 github.tar level 6 with dict copy advanced one pass small out 38656 38808
793 github.tar level 6 with dict load advanced one pass small out 38647 38796
794 github.tar level 7 row 1 advanced one pass small out 38005 38168
795 github.tar level 7 row 1 with dict dms advanced one pass small out 37832
796 github.tar level 7 row 1 with dict dds advanced one pass small out 37857
797 github.tar level 7 row 1 with dict copy advanced one pass small out 37839
798 github.tar level 7 row 1 with dict load advanced one pass small out 37286 37445
799 github.tar level 7 row 2 advanced one pass small out 38077 38235
800 github.tar level 7 row 2 with dict dms advanced one pass small out 38012
801 github.tar level 7 row 2 with dict dds advanced one pass small out 38014
802 github.tar level 7 row 2 with dict copy advanced one pass small out 38101
803 github.tar level 7 row 2 with dict load advanced one pass small out 37402 37552
804 github.tar level 7 advanced one pass small out 38005 38168
805 github.tar level 7 with dict advanced one pass small out 37839
806 github.tar level 7 with dict dms advanced one pass small out 37832
807 github.tar level 7 with dict dds advanced one pass small out 37857
808 github.tar level 7 with dict copy advanced one pass small out 37839
809 github.tar level 7 with dict load advanced one pass small out 37286 37445
810 github.tar level 9 advanced one pass small out 36723
811 github.tar level 9 with dict advanced one pass small out 36531
812 github.tar level 9 with dict dms advanced one pass small out 36615
851 github.tar level 19 with dict dds advanced one pass small out 32565
852 github.tar level 19 with dict copy advanced one pass small out 32701
853 github.tar level 19 with dict load advanced one pass small out 32428
854 github.tar no source size advanced one pass small out 38884 39073
855 github.tar no source size with dict advanced one pass small out 37995 38146
856 github.tar long distance mode advanced one pass small out 40242 40402
857 github.tar multithreaded advanced one pass small out 38884 39067
858 github.tar multithreaded long distance mode advanced one pass small out 40223 40377
859 github.tar small window log advanced one pass small out 198535
860 github.tar small hash log advanced one pass small out 129870
861 github.tar small chain log advanced one pass small out 41669
862 github.tar explicit params advanced one pass small out 41385 41605
863 github.tar uncompressed literals advanced one pass small out 41562 41709
864 github.tar uncompressed literals optimal advanced one pass small out 35356
865 github.tar huffman literals advanced one pass small out 38853 39099
866 github.tar multithreaded with advanced params advanced one pass small out 41562 41700
867 silesia level -5 advanced streaming 6854744 6856699
868 silesia level -3 advanced streaming 6503319 6505694
869 silesia level -1 advanced streaming 6172207 6174139
870 silesia level 0 advanced streaming 4839431 4839173
871 silesia level 1 advanced streaming 5306388 5305682
872 silesia level 3 advanced streaming 4839431 4839173
873 silesia level 4 advanced streaming 4776557 4776074
874 silesia level 5 row 1 advanced streaming 4667668 4667049
875 silesia level 5 row 2 advanced streaming 4670326 4669474
876 silesia level 5 advanced streaming 4667668 4667049
877 silesia level 6 advanced streaming 4604351 4602956
878 silesia level 7 row 1 advanced streaming 4570271 4568785
879 silesia level 7 row 2 advanced streaming 4565169 4563722
880 silesia level 7 advanced streaming 4570271 4568785
881 silesia level 9 advanced streaming 4545850
882 silesia level 11 row 1 advanced streaming 4505658
883 silesia level 11 row 2 advanced streaming 4503429
886 silesia level 13 advanced streaming 4493990
887 silesia level 16 advanced streaming 4359652
888 silesia level 19 advanced streaming 4266582
889 silesia no source size advanced streaming 4839395 4839137
890 silesia long distance mode advanced streaming 4831158 4831125
891 silesia multithreaded advanced streaming 4839431 4838949
892 silesia multithreaded long distance mode advanced streaming 4831176 4830419
893 silesia small window log advanced streaming 7110591
894 silesia small hash log advanced streaming 6526141
895 silesia small chain log advanced streaming 4912197
896 silesia explicit params advanced streaming 4795857 4795053
897 silesia uncompressed literals advanced streaming 5116957 5117625
898 silesia uncompressed literals optimal advanced streaming 4316880
899 silesia huffman literals advanced streaming 5321370 5321812
900 silesia multithreaded with advanced params advanced streaming 5116957 5117795
901 silesia.tar level -5 advanced streaming 6856523 6857458
902 silesia.tar level -3 advanced streaming 6505954 6508562
903 silesia.tar level -1 advanced streaming 6179056 6178057
904 silesia.tar level 0 advanced streaming 4858632 4849720
905 silesia.tar level 1 advanced streaming 5327708 5311452
906 silesia.tar level 3 advanced streaming 4858632 4849720
907 silesia.tar level 4 advanced streaming 4796895 4787534
908 silesia.tar level 5 row 1 advanced streaming 4679020 4669420
909 silesia.tar level 5 row 2 advanced streaming 4682355 4673610
910 silesia.tar level 5 advanced streaming 4679020 4669420
911 silesia.tar level 6 advanced streaming 4614558 4604125
912 silesia.tar level 7 row 1 advanced streaming 4579823 4570206
913 silesia.tar level 7 row 2 advanced streaming 4575601 4565792
914 silesia.tar level 7 advanced streaming 4579823 4570206
915 silesia.tar level 9 advanced streaming 4555445
916 silesia.tar level 11 row 1 advanced streaming 4514959
917 silesia.tar level 11 row 2 advanced streaming 4513810
920 silesia.tar level 13 advanced streaming 4502956
921 silesia.tar level 16 advanced streaming 4360385
922 silesia.tar level 19 advanced streaming 4260939
923 silesia.tar no source size advanced streaming 4858628 4849716
924 silesia.tar long distance mode advanced streaming 4837775 4829339
925 silesia.tar multithreaded advanced streaming 4851478 4841902
926 silesia.tar multithreaded long distance mode advanced streaming 4843155 4834262
927 silesia.tar small window log advanced streaming 7117024
928 silesia.tar small hash log advanced streaming 6529209
929 silesia.tar small chain log advanced streaming 4917021
930 silesia.tar explicit params advanced streaming 4807288 4797673
931 silesia.tar uncompressed literals advanced streaming 5126542 5124811
932 silesia.tar uncompressed literals optimal advanced streaming 4308451
933 silesia.tar huffman literals advanced streaming 5341712 5326278
934 silesia.tar multithreaded with advanced params advanced streaming 5118940 5116442
935 github level -5 advanced streaming 204407
936 github level -5 with dict advanced streaming 45832
937 github level -3 advanced streaming 193253
1057 github uncompressed literals optimal advanced streaming 152667
1058 github huffman literals advanced streaming 142365
1059 github multithreaded with advanced params advanced streaming 165909
1060 github.tar level -5 advanced streaming 52152 52384
1061 github.tar level -5 with dict advanced streaming 51181 51420
1062 github.tar level -3 advanced streaming 45678 45907
1063 github.tar level -3 with dict advanced streaming 44734 44973
1064 github.tar level -1 advanced streaming 42560 42777
1065 github.tar level -1 with dict advanced streaming 41353 41603
1066 github.tar level 0 advanced streaming 38884 39249
1067 github.tar level 0 with dict advanced streaming 37995 38309
1068 github.tar level 0 with dict dms advanced streaming 38114 38445
1069 github.tar level 0 with dict dds advanced streaming 38114 38445
1070 github.tar level 0 with dict copy advanced streaming 37995 38309
1071 github.tar level 0 with dict load advanced streaming 37956 38281
1072 github.tar level 1 advanced streaming 39200 39550
1073 github.tar level 1 with dict advanced streaming 38119 38502
1074 github.tar level 1 with dict dms advanced streaming 38406 38770
1075 github.tar level 1 with dict dds advanced streaming 38406 38770
1076 github.tar level 1 with dict copy advanced streaming 38119 38502
1077 github.tar level 1 with dict load advanced streaming 38364 38716
1078 github.tar level 3 advanced streaming 38884 39249
1079 github.tar level 3 with dict advanced streaming 37995 38309
1080 github.tar level 3 with dict dms advanced streaming 38114 38445
1081 github.tar level 3 with dict dds advanced streaming 38114 38445
1082 github.tar level 3 with dict copy advanced streaming 37995 38309
1083 github.tar level 3 with dict load advanced streaming 37956 38281
1084 github.tar level 4 advanced streaming 38880 39247
1085 github.tar level 4 with dict advanced streaming 37948 38270
1086 github.tar level 4 with dict dms advanced streaming 37995 38317
1087 github.tar level 4 with dict dds advanced streaming 37995 38317
1088 github.tar level 4 with dict copy advanced streaming 37948 38270
1089 github.tar level 4 with dict load advanced streaming 37927 38259
1090 github.tar level 5 row 1 advanced streaming 39651 39986
1091 github.tar level 5 row 1 with dict dms advanced streaming 39043 39370
1092 github.tar level 5 row 1 with dict dds advanced streaming 39069 39396
1093 github.tar level 5 row 1 with dict copy advanced streaming 39145 39465
1094 github.tar level 5 row 1 with dict load advanced streaming 39000 39332
1095 github.tar level 5 row 2 advanced streaming 39701 40038
1096 github.tar level 5 row 2 with dict dms advanced streaming 39365 39690
1097 github.tar level 5 row 2 with dict dds advanced streaming 39233 39555
1098 github.tar level 5 row 2 with dict copy advanced streaming 39715 40036
1099 github.tar level 5 row 2 with dict load advanced streaming 39158 39498
1100 github.tar level 5 advanced streaming 39651 39986
1101 github.tar level 5 with dict advanced streaming 39145 39465
1102 github.tar level 5 with dict dms advanced streaming 39043 39370
1103 github.tar level 5 with dict dds advanced streaming 39069 39396
1104 github.tar level 5 with dict copy advanced streaming 39145 39465
1105 github.tar level 5 with dict load advanced streaming 39000 39332
1106 github.tar level 6 advanced streaming 39282 39565
1107 github.tar level 6 with dict advanced streaming 38656 38894
1108 github.tar level 6 with dict dms advanced streaming 38640 38901
1109 github.tar level 6 with dict dds advanced streaming 38643 38903
1110 github.tar level 6 with dict copy advanced streaming 38656 38894
1111 github.tar level 6 with dict load advanced streaming 38647 38906
1112 github.tar level 7 row 1 advanced streaming 38005 38295
1113 github.tar level 7 row 1 with dict dms advanced streaming 37832
1114 github.tar level 7 row 1 with dict dds advanced streaming 37857
1115 github.tar level 7 row 1 with dict copy advanced streaming 37839
1116 github.tar level 7 row 1 with dict load advanced streaming 37286 37565
1117 github.tar level 7 row 2 advanced streaming 38077 38369
1118 github.tar level 7 row 2 with dict dms advanced streaming 38012
1119 github.tar level 7 row 2 with dict dds advanced streaming 38014
1120 github.tar level 7 row 2 with dict copy advanced streaming 38101
1121 github.tar level 7 row 2 with dict load advanced streaming 37402 37688
1122 github.tar level 7 advanced streaming 38005 38295
1123 github.tar level 7 with dict advanced streaming 37839
1124 github.tar level 7 with dict dms advanced streaming 37832
1125 github.tar level 7 with dict dds advanced streaming 37857
1126 github.tar level 7 with dict copy advanced streaming 37839
1127 github.tar level 7 with dict load advanced streaming 37286 37565
1128 github.tar level 9 advanced streaming 36723
1129 github.tar level 9 with dict advanced streaming 36531
1130 github.tar level 9 with dict dms advanced streaming 36615
1169 github.tar level 19 with dict dds advanced streaming 32565
1170 github.tar level 19 with dict copy advanced streaming 32701
1171 github.tar level 19 with dict load advanced streaming 32428
1172 github.tar no source size advanced streaming 38881 39246
1173 github.tar no source size with dict advanced streaming 38111 38442
1174 github.tar long distance mode advanced streaming 40242 40569
1175 github.tar multithreaded advanced streaming 38884 39067
1176 github.tar multithreaded long distance mode advanced streaming 40223 40377
1177 github.tar small window log advanced streaming 199553
1178 github.tar small hash log advanced streaming 129870
1179 github.tar small chain log advanced streaming 41669
1180 github.tar explicit params advanced streaming 41385 41768
1181 github.tar uncompressed literals advanced streaming 41562 41784
1182 github.tar uncompressed literals optimal advanced streaming 35356
1183 github.tar huffman literals advanced streaming 38853 39226
1184 github.tar multithreaded with advanced params advanced streaming 41562 41700
1185 silesia level -5 old streaming 6854744 6856699
1186 silesia level -3 old streaming 6503319 6505694
1187 silesia level -1 old streaming 6172207 6174139
1188 silesia level 0 old streaming 4839431 4839173
1189 silesia level 1 old streaming 5306388 5305682
1190 silesia level 3 old streaming 4839431 4839173
1191 silesia level 4 old streaming 4776557 4776074
1192 silesia level 5 old streaming 4667668 4667049
1193 silesia level 6 old streaming 4604351 4602956
1194 silesia level 7 old streaming 4570271 4568785
1195 silesia level 9 old streaming 4545850
1196 silesia level 13 old streaming 4493990
1197 silesia level 16 old streaming 4359652
1198 silesia level 19 old streaming 4266582
1199 silesia no source size old streaming 4839395 4839137
1200 silesia uncompressed literals old streaming 4839431 4839173
1201 silesia uncompressed literals optimal old streaming 4266582
1202 silesia huffman literals old streaming 6172207 6174139
1203 silesia.tar level -5 old streaming 6856523 6857458
1204 silesia.tar level -3 old streaming 6505954 6508562
1205 silesia.tar level -1 old streaming 6179056 6178057
1206 silesia.tar level 0 old streaming 4858632 4849720
1207 silesia.tar level 1 old streaming 5327708 5311452
1208 silesia.tar level 3 old streaming 4858632 4849720
1209 silesia.tar level 4 old streaming 4796895 4787534
1210 silesia.tar level 5 old streaming 4679020 4669420
1211 silesia.tar level 6 old streaming 4614558 4604125
1212 silesia.tar level 7 old streaming 4579823 4570206
1213 silesia.tar level 9 old streaming 4555445
1214 silesia.tar level 13 old streaming 4502956
1215 silesia.tar level 16 old streaming 4360385
1216 silesia.tar level 19 old streaming 4260939
1217 silesia.tar no source size old streaming 4858628 4849716
1218 silesia.tar uncompressed literals old streaming 4858632 4849720
1219 silesia.tar uncompressed literals optimal old streaming 4260939
1220 silesia.tar huffman literals old streaming 6179056 6178057
1221 github level -5 old streaming 204407
1222 github level -5 with dict old streaming 45832
1223 github level -3 old streaming 193253
1251 github uncompressed literals old streaming 136331
1252 github uncompressed literals optimal old streaming 132879
1253 github huffman literals old streaming 175468
1254 github.tar level -5 old streaming 52152 52384
1255 github.tar level -5 with dict old streaming 51181 51420
1256 github.tar level -3 old streaming 45678 45907
1257 github.tar level -3 with dict old streaming 44734 44973
1258 github.tar level -1 old streaming 42560 42777
1259 github.tar level -1 with dict old streaming 41353 41603
1260 github.tar level 0 old streaming 38884 39249
1261 github.tar level 0 with dict old streaming 37995 38309
1262 github.tar level 1 old streaming 39200 39550
1263 github.tar level 1 with dict old streaming 38119 38502
1264 github.tar level 3 old streaming 38884 39249
1265 github.tar level 3 with dict old streaming 37995 38309
1266 github.tar level 4 old streaming 38880 39247
1267 github.tar level 4 with dict old streaming 37948 38270
1268 github.tar level 5 old streaming 39651 39986
1269 github.tar level 5 with dict old streaming 39145 39465
1270 github.tar level 6 old streaming 39282 39565
1271 github.tar level 6 with dict old streaming 38656 38894
1272 github.tar level 7 old streaming 38005 38295
1273 github.tar level 7 with dict old streaming 37839
1274 github.tar level 9 old streaming 36723
1275 github.tar level 9 with dict old streaming 36531
1279 github.tar level 16 with dict old streaming 33375
1280 github.tar level 19 old streaming 32262
1281 github.tar level 19 with dict old streaming 32701
1282 github.tar no source size old streaming 38881 39246
1283 github.tar no source size with dict old streaming 38111 38442
1284 github.tar uncompressed literals old streaming 38884 39249
1285 github.tar uncompressed literals optimal old streaming 32262
1286 github.tar huffman literals old streaming 42560 42777
1287 silesia level -5 old streaming advanced 6854744 6856699
1288 silesia level -3 old streaming advanced 6503319 6505694
1289 silesia level -1 old streaming advanced 6172207 6174139
1290 silesia level 0 old streaming advanced 4839431 4839173
1291 silesia level 1 old streaming advanced 5306388 5305682
1292 silesia level 3 old streaming advanced 4839431 4839173
1293 silesia level 4 old streaming advanced 4776557 4776074
1294 silesia level 5 old streaming advanced 4667668 4667049
1295 silesia level 6 old streaming advanced 4604351 4602956
1296 silesia level 7 old streaming advanced 4570271 4568785
1297 silesia level 9 old streaming advanced 4545850
1298 silesia level 13 old streaming advanced 4493990
1299 silesia level 16 old streaming advanced 4359652
1300 silesia level 19 old streaming advanced 4266582
1301 silesia no source size old streaming advanced 4839395 4839137
1302 silesia long distance mode old streaming advanced 4839431 4839173
1303 silesia multithreaded old streaming advanced 4839431 4839173
1304 silesia multithreaded long distance mode old streaming advanced 4839431 4839173
1305 silesia small window log old streaming advanced 7110591
1306 silesia small hash log old streaming advanced 6526141
1307 silesia small chain log old streaming advanced 4912197
1308 silesia explicit params old streaming advanced 4795857 4795053
1309 silesia uncompressed literals old streaming advanced 4839431 4839173
1310 silesia uncompressed literals optimal old streaming advanced 4266582
1311 silesia huffman literals old streaming advanced 6172207 6174139
1312 silesia multithreaded with advanced params old streaming advanced 4839431 4839173
1313 silesia.tar level -5 old streaming advanced 6856523 6857458
1314 silesia.tar level -3 old streaming advanced 6505954 6508562
1315 silesia.tar level -1 old streaming advanced 6179056 6178057
1316 silesia.tar level 0 old streaming advanced 4858632 4849720
1317 silesia.tar level 1 old streaming advanced 5327708 5311452
1318 silesia.tar level 3 old streaming advanced 4858632 4849720
1319 silesia.tar level 4 old streaming advanced 4796895 4787534
1320 silesia.tar level 5 old streaming advanced 4679020 4669420
1321 silesia.tar level 6 old streaming advanced 4614558 4604125
1322 silesia.tar level 7 old streaming advanced 4579823 4570206
1323 silesia.tar level 9 old streaming advanced 4555445
1324 silesia.tar level 13 old streaming advanced 4502956
1325 silesia.tar level 16 old streaming advanced 4360385
1326 silesia.tar level 19 old streaming advanced 4260939
1327 silesia.tar no source size old streaming advanced 4858628 4849716
1328 silesia.tar long distance mode old streaming advanced 4858632 4849720
1329 silesia.tar multithreaded old streaming advanced 4858632 4849720
1330 silesia.tar multithreaded long distance mode old streaming advanced 4858632 4849720
1331 silesia.tar small window log old streaming advanced 7117027
1332 silesia.tar small hash log old streaming advanced 6529209
1333 silesia.tar small chain log old streaming advanced 4917021
1334 silesia.tar explicit params old streaming advanced 4807288 4797673
1335 silesia.tar uncompressed literals old streaming advanced 4858632 4849720
1336 silesia.tar uncompressed literals optimal old streaming advanced 4260939
1337 silesia.tar huffman literals old streaming advanced 6179056 6178057
1338 silesia.tar multithreaded with advanced params old streaming advanced 4858632 4849720
1339 github level -5 old streaming advanced 213265
1340 github level -5 with dict old streaming advanced 46708
1341 github level -3 old streaming advanced 196126
1377 github uncompressed literals optimal old streaming advanced 132879
1378 github huffman literals old streaming advanced 181107
1379 github multithreaded with advanced params old streaming advanced 141101
1380 github.tar level -5 old streaming advanced 52152 52384
1381 github.tar level -5 with dict old streaming advanced 51129 51359
1382 github.tar level -3 old streaming advanced 45678 45907
1383 github.tar level -3 with dict old streaming advanced 44986 45211
1384 github.tar level -1 old streaming advanced 42560 42777
1385 github.tar level -1 with dict old streaming advanced 41650 41865
1386 github.tar level 0 old streaming advanced 38884 39249
1387 github.tar level 0 with dict old streaming advanced 38013 38327
1388 github.tar level 1 old streaming advanced 39200 39550
1389 github.tar level 1 with dict old streaming advanced 38359 38714
1390 github.tar level 3 old streaming advanced 38884 39249
1391 github.tar level 3 with dict old streaming advanced 38013 38327
1392 github.tar level 4 old streaming advanced 38880 39247
1393 github.tar level 4 with dict old streaming advanced 38063 38382
1394 github.tar level 5 old streaming advanced 39651 39986
1395 github.tar level 5 with dict old streaming advanced 39018 39347
1396 github.tar level 6 old streaming advanced 39282 39565
1397 github.tar level 6 with dict old streaming advanced 38635 38889
1398 github.tar level 7 old streaming advanced 38005 38295
1399 github.tar level 7 with dict old streaming advanced 37264 37534
1400 github.tar level 9 old streaming advanced 36723
1401 github.tar level 9 with dict old streaming advanced 36241
1402 github.tar level 13 old streaming advanced 35501
1405 github.tar level 16 with dict old streaming advanced 38578
1406 github.tar level 19 old streaming advanced 32262
1407 github.tar level 19 with dict old streaming advanced 32678
1408 github.tar no source size old streaming advanced 38881 39246
1409 github.tar no source size with dict old streaming advanced 38076 38399
1410 github.tar long distance mode old streaming advanced 38884 39249
1411 github.tar multithreaded old streaming advanced 38884 39249
1412 github.tar multithreaded long distance mode old streaming advanced 38884 39249
1413 github.tar small window log old streaming advanced 199556
1414 github.tar small hash log old streaming advanced 129870
1415 github.tar small chain log old streaming advanced 41669
1416 github.tar explicit params old streaming advanced 41385 41768
1417 github.tar uncompressed literals old streaming advanced 38884 39249
1418 github.tar uncompressed literals optimal old streaming advanced 32262
1419 github.tar huffman literals old streaming advanced 42560 42777
1420 github.tar multithreaded with advanced params old streaming advanced 38884 39249
1421 github level -5 with dict old streaming cdict 45832
1422 github level -3 with dict old streaming cdict 44671
1423 github level -1 with dict old streaming cdict 41825
1433 github level 16 with dict old streaming cdict 37902
1434 github level 19 with dict old streaming cdict 37916
1435 github no source size with dict old streaming cdict 40652
1436 github.tar level -5 with dict old streaming cdict 51286 51512
1437 github.tar level -3 with dict old streaming cdict 45147 45379
1438 github.tar level -1 with dict old streaming cdict 41865 42084
1439 github.tar level 0 with dict old streaming cdict 37956 38281
1440 github.tar level 1 with dict old streaming cdict 38364 38716
1441 github.tar level 3 with dict old streaming cdict 37956 38281
1442 github.tar level 4 with dict old streaming cdict 37927 38259
1443 github.tar level 5 with dict old streaming cdict 39000 39332
1444 github.tar level 6 with dict old streaming cdict 38647 38906
1445 github.tar level 7 with dict old streaming cdict 37286 37565
1446 github.tar level 9 with dict old streaming cdict 36322
1447 github.tar level 13 with dict old streaming cdict 36010
1448 github.tar level 16 with dict old streaming cdict 39081
1449 github.tar level 19 with dict old streaming cdict 32428
1450 github.tar no source size with dict old streaming cdict 38111 38442
1451 github level -5 with dict old streaming advanced cdict 46708
1452 github level -3 with dict old streaming advanced cdict 45476
1453 github level -1 with dict old streaming advanced cdict 42060
1463 github level 16 with dict old streaming advanced cdict 40804
1464 github level 19 with dict old streaming advanced cdict 37916
1465 github no source size with dict old streaming advanced cdict 40608
1466 github.tar level -5 with dict old streaming advanced cdict 50791 51019
1467 github.tar level -3 with dict old streaming advanced cdict 44926 45149
1468 github.tar level -1 with dict old streaming advanced cdict 41482 41694
1469 github.tar level 0 with dict old streaming advanced cdict 38013 38327
1470 github.tar level 1 with dict old streaming advanced cdict 38168 38513
1471 github.tar level 3 with dict old streaming advanced cdict 38013 38327
1472 github.tar level 4 with dict old streaming advanced cdict 38063 38382
1473 github.tar level 5 with dict old streaming advanced cdict 39018 39347
1474 github.tar level 6 with dict old streaming advanced cdict 38635 38889
1475 github.tar level 7 with dict old streaming advanced cdict 37264 37534
1476 github.tar level 9 with dict old streaming advanced cdict 36241
1477 github.tar level 13 with dict old streaming advanced cdict 35807
1478 github.tar level 16 with dict old streaming advanced cdict 38578
1479 github.tar level 19 with dict old streaming advanced cdict 32678
1480 github.tar no source size with dict old streaming advanced cdict 38076 38399
+3 -3
View File
@@ -441,7 +441,7 @@ static int basicUnitTests(U32 seed, double compressibility, int bigTests)
size_t const gfhError = ZSTD_getFrameHeader(&fhi, cStart, cSize);
if (gfhError!=0) goto _output_error;
DISPLAYLEVEL(5, " (windowSize : %u) ", (unsigned)fhi.windowSize);
{ size_t const s = ZSTD_estimateDStreamSize(fhi.windowSize)
{ size_t const s = ZSTD_estimateDStreamSize((size_t)fhi.windowSize)
/* uses ZSTD_initDStream_usingDict() */
+ ZSTD_estimateDDictSize(dictSize, ZSTD_dlm_byCopy);
if (ZSTD_isError(s)) goto _output_error;
@@ -958,7 +958,7 @@ static int basicUnitTests(U32 seed, double compressibility, int bigTests)
break;
out.size = MIN(out.size + cSize / 4, compressedBufferSize);
}
CHECK_Z(ZSTD_decompress(decodedBuffer, CNBufferSize, compressedBuffer, cSize));
CHECK_Z(ZSTD_decompress(decodedBuffer, CNBufferSize, compressedBuffer, out.pos));
DISPLAYLEVEL(3, "OK \n");
DISPLAYLEVEL(3, "test%3i : ZSTD_compressStream2() ZSTD_c_stableInBuffer modify buffer : ", testNb++);
@@ -1551,7 +1551,7 @@ static int basicUnitTests(U32 seed, double compressibility, int bigTests)
DISPLAYLEVEL(3, "test%3i : check dictionary FSE tables can represent every code : ", testNb++);
{ unsigned const kMaxWindowLog = 24;
unsigned value;
ZSTD_compressionParameters cParams = ZSTD_getCParams(3, 1U << kMaxWindowLog, 1024);
ZSTD_compressionParameters cParams = ZSTD_getCParams(3, 1ULL << kMaxWindowLog, 1024);
ZSTD_CDict* cdict;
ZSTD_DDict* ddict;
SEQ_stream seq = SEQ_initStream(0x87654321);