add faster block splitting heuristic, suitable for dfast strategy
This commit is contained in:
@@ -4507,11 +4507,13 @@ static size_t ZSTD_optimalBlockSize(ZSTD_CCtx* cctx, const void* src, size_t src
|
||||
/* 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, blockSizeMax, split_lvl3, cctx->tmpWorkspace, cctx->tmpWkspSize);
|
||||
return ZSTD_splitBlock(src, blockSizeMax, 3, cctx->tmpWorkspace, cctx->tmpWkspSize);
|
||||
if (strat >= ZSTD_lazy2)
|
||||
return ZSTD_splitBlock(src, blockSizeMax, split_lvl2, cctx->tmpWorkspace, cctx->tmpWkspSize);
|
||||
return ZSTD_splitBlock(src, blockSizeMax, 2, cctx->tmpWorkspace, cctx->tmpWkspSize);
|
||||
if (strat >= ZSTD_greedy)
|
||||
return ZSTD_splitBlock(src, blockSizeMax, split_lvl1, cctx->tmpWorkspace, cctx->tmpWkspSize);
|
||||
return ZSTD_splitBlock(src, blockSizeMax, 1, cctx->tmpWorkspace, cctx->tmpWkspSize);
|
||||
if (strat >= ZSTD_dfast)
|
||||
return ZSTD_splitBlock(src, blockSizeMax, 0, cctx->tmpWorkspace, cctx->tmpWkspSize);
|
||||
/* blind split strategy
|
||||
* heuristic value, tested as being "generally better".
|
||||
* no cpu cost, but can over-split homegeneous data.
|
||||
|
||||
Reference in New Issue
Block a user