mirror of
https://github.com/facebook/zstd.git
synced 2025-03-06 16:56:49 +02:00
clarified comments on LDM parameters
This commit is contained in:
parent
60fa90b6c0
commit
4b6a94f0cc
34
lib/zstd.h
34
lib/zstd.h
@ -1015,7 +1015,7 @@ typedef enum {
|
|||||||
/* advanced parameters - may not remain available after API update */
|
/* advanced parameters - may not remain available after API update */
|
||||||
ZSTD_p_forceMaxWindow=1100, /* Force back-reference distances to remain < windowSize,
|
ZSTD_p_forceMaxWindow=1100, /* Force back-reference distances to remain < windowSize,
|
||||||
* even when referencing into Dictionary content (default:0) */
|
* even when referencing into Dictionary content (default:0) */
|
||||||
ZSTD_p_enableLongDistanceMatching=1200, /* Enable long distance matching.
|
ZSTD_p_enableLongDistanceMatching=1200, /* Enable long distance matching.
|
||||||
* This parameter is designed to improve the compression
|
* This parameter is designed to improve the compression
|
||||||
* ratio for large inputs with long distance matches.
|
* ratio for large inputs with long distance matches.
|
||||||
* This increases the memory usage as well as window size.
|
* This increases the memory usage as well as window size.
|
||||||
@ -1025,25 +1025,29 @@ typedef enum {
|
|||||||
* other LDM parameters. Setting the compression level
|
* other LDM parameters. Setting the compression level
|
||||||
* after this parameter overrides the window log, though LDM
|
* after this parameter overrides the window log, though LDM
|
||||||
* will remain enabled until explicitly disabled. */
|
* will remain enabled until explicitly disabled. */
|
||||||
ZSTD_p_ldmHashLog, /* Size of the table for long distance matching, as a power of 2.
|
ZSTD_p_ldmHashLog, /* Size of the table for long distance matching, as a power of 2.
|
||||||
* Larger values increase memory usage and compression ratio, but decrease
|
* Larger values increase memory usage and compression ratio, but decrease
|
||||||
* compression speed.
|
* compression speed.
|
||||||
* Must be clamped between ZSTD_HASHLOG_MIN and ZSTD_HASHLOG_MAX
|
* Must be clamped between ZSTD_HASHLOG_MIN and ZSTD_HASHLOG_MAX
|
||||||
* (default: windowlog - 7). */
|
* (default: windowlog - 7).
|
||||||
ZSTD_p_ldmMinMatch, /* Minimum size of searched matches for long distance matcher.
|
* Special: value 0 means "do not change ldmHashLog". */
|
||||||
* Larger/too small values usually decrease compression ratio.
|
ZSTD_p_ldmMinMatch, /* Minimum size of searched matches for long distance matcher.
|
||||||
* Must be clamped between ZSTD_LDM_MINMATCH_MIN
|
* Larger/too small values usually decrease compression ratio.
|
||||||
* and ZSTD_LDM_MINMATCH_MAX (default: 64). */
|
* Must be clamped between ZSTD_LDM_MINMATCH_MIN
|
||||||
ZSTD_p_ldmBucketSizeLog, /* Log size of each bucket in the LDM hash table for collision resolution.
|
* and ZSTD_LDM_MINMATCH_MAX (default: 64).
|
||||||
* Larger values usually improve collision resolution but may decrease
|
* Special: value 0 means "do not change ldmMinMatch". */
|
||||||
* compression speed.
|
ZSTD_p_ldmBucketSizeLog, /* Log size of each bucket in the LDM hash table for collision resolution.
|
||||||
* The maximum value is ZSTD_LDM_BUCKETSIZELOG_MAX (default: 3). */
|
* Larger values usually improve collision resolution but may decrease
|
||||||
|
* compression speed.
|
||||||
|
* The maximum value is ZSTD_LDM_BUCKETSIZELOG_MAX (default: 3).
|
||||||
|
* note : 0 is a valid value */
|
||||||
ZSTD_p_ldmHashEveryLog, /* Frequency of inserting/looking up entries in the LDM hash table.
|
ZSTD_p_ldmHashEveryLog, /* Frequency of inserting/looking up entries in the LDM hash table.
|
||||||
* The default is MAX(0, (windowLog - ldmHashLog)) to
|
* The default is MAX(0, (windowLog - ldmHashLog)) to
|
||||||
* optimize hash table usage.
|
* optimize hash table usage.
|
||||||
* Larger values improve compression speed. Deviating far from the
|
* Larger values improve compression speed. Deviating far from the
|
||||||
* default value will likely result in a decrease in compression ratio.
|
* default value will likely result in a decrease in compression ratio.
|
||||||
* Must be clamped between 0 and ZSTD_WINDOWLOG_MAX - ZSTD_HASHLOG_MIN. */
|
* Must be clamped between 0 and ZSTD_WINDOWLOG_MAX - ZSTD_HASHLOG_MIN.
|
||||||
|
* note : 0 is a valid value */
|
||||||
|
|
||||||
} ZSTD_cParameter;
|
} ZSTD_cParameter;
|
||||||
|
|
||||||
|
@ -430,7 +430,7 @@ static cRess_t FIO_createCResources(const char* dictFileName, int cLevel,
|
|||||||
if (!ress.srcBuffer || !ress.dstBuffer)
|
if (!ress.srcBuffer || !ress.dstBuffer)
|
||||||
EXM_THROW(31, "allocation error : not enough memory");
|
EXM_THROW(31, "allocation error : not enough memory");
|
||||||
|
|
||||||
/* Advances parameters, including dictionary */
|
/* Advanced parameters, including dictionary */
|
||||||
{ void* dictBuffer;
|
{ void* dictBuffer;
|
||||||
size_t const dictBuffSize = FIO_createDictBuffer(&dictBuffer, dictFileName); /* works with dictFileName==NULL */
|
size_t const dictBuffSize = FIO_createDictBuffer(&dictBuffer, dictFileName); /* works with dictFileName==NULL */
|
||||||
if (dictFileName && (dictBuffer==NULL))
|
if (dictFileName && (dictBuffer==NULL))
|
||||||
@ -442,8 +442,7 @@ static cRess_t FIO_createCResources(const char* dictFileName, int cLevel,
|
|||||||
/* compression level */
|
/* compression level */
|
||||||
CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_p_compressionLevel, cLevel) );
|
CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_p_compressionLevel, cLevel) );
|
||||||
/* long distance matching */
|
/* long distance matching */
|
||||||
CHECK( ZSTD_CCtx_setParameter(
|
CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_p_enableLongDistanceMatching, g_ldmFlag) );
|
||||||
ress.cctx, ZSTD_p_enableLongDistanceMatching, g_ldmFlag) );
|
|
||||||
CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_p_ldmHashLog, g_ldmHashLog) );
|
CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_p_ldmHashLog, g_ldmHashLog) );
|
||||||
CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_p_ldmMinMatch, g_ldmMinMatch) );
|
CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_p_ldmMinMatch, g_ldmMinMatch) );
|
||||||
if (g_ldmBucketSizeLog != FIO_LDM_PARAM_NOTSET) {
|
if (g_ldmBucketSizeLog != FIO_LDM_PARAM_NOTSET) {
|
||||||
@ -461,13 +460,13 @@ static cRess_t FIO_createCResources(const char* dictFileName, int cLevel,
|
|||||||
CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_p_targetLength, comprParams->targetLength) );
|
CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_p_targetLength, comprParams->targetLength) );
|
||||||
CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_p_compressionStrategy, (U32)comprParams->strategy) );
|
CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_p_compressionStrategy, (U32)comprParams->strategy) );
|
||||||
/* multi-threading */
|
/* multi-threading */
|
||||||
|
#ifdef ZSTD_MULTITHREAD
|
||||||
DISPLAYLEVEL(5,"set nb threads = %u \n", g_nbThreads);
|
DISPLAYLEVEL(5,"set nb threads = %u \n", g_nbThreads);
|
||||||
CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_p_nbThreads, g_nbThreads) );
|
CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_p_nbThreads, g_nbThreads) );
|
||||||
#ifdef ZSTD_MULTITHREAD
|
|
||||||
CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_p_nonBlockingMode, 1) );
|
CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_p_nonBlockingMode, 1) );
|
||||||
#endif
|
#endif
|
||||||
/* dictionary */
|
/* dictionary */
|
||||||
CHECK( ZSTD_CCtx_setPledgedSrcSize(ress.cctx, srcSize) ); /* just for dictionary loading, for compression parameters adaptation */
|
CHECK( ZSTD_CCtx_setPledgedSrcSize(ress.cctx, srcSize) ); /* set the value temporarily for dictionary loading, to adapt compression parameters */
|
||||||
CHECK( ZSTD_CCtx_loadDictionary(ress.cctx, dictBuffer, dictBuffSize) );
|
CHECK( ZSTD_CCtx_loadDictionary(ress.cctx, dictBuffer, dictBuffSize) );
|
||||||
CHECK( ZSTD_CCtx_setPledgedSrcSize(ress.cctx, ZSTD_CONTENTSIZE_UNKNOWN) ); /* reset */
|
CHECK( ZSTD_CCtx_setPledgedSrcSize(ress.cctx, ZSTD_CONTENTSIZE_UNKNOWN) ); /* reset */
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user