From: Yann Collet Date: Fri, 31 Jan 2025 02:05:58 +0000 (-0800) Subject: minor boundary change X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5ef6e51e43863d103e5872f6aaf0478c1307cbd7;p=thirdparty%2Fzstd.git minor boundary change improves compression ratio at low levels --- diff --git a/Makefile b/Makefile index 03ee6fe89..e8e6bcffe 100644 --- a/Makefile +++ b/Makefile @@ -296,9 +296,9 @@ msanregressiontest: update_regressionResults : REGRESS_RESULTS_DIR := /tmp/regress_results_dir/ update_regressionResults: - $(MAKE) -C programs zstd - $(MAKE) -C tests/regression test - $(RM) -rf $(REGRESS_RESULTS_DIR) + $(MAKE) -j -C programs zstd + $(MAKE) -j -C tests/regression test + $(RM) -r $(REGRESS_RESULTS_DIR) $(MKDIR) $(REGRESS_RESULTS_DIR) ./tests/regression/test \ --cache tests/regression/cache \ diff --git a/lib/compress/zstd_compress.c b/lib/compress/zstd_compress.c index d612a5257..76c6d3f2c 100644 --- a/lib/compress/zstd_compress.c +++ b/lib/compress/zstd_compress.c @@ -4960,7 +4960,7 @@ ZSTD_loadDictionaryContent(ZSTD_MatchState_t* ms, } /* If the dict is larger than we can reasonably index in our tables, only load the suffix. */ - { U32 maxDictSize = 2U << MIN(MAX(params->cParams.hashLog, params->cParams.chainLog), 30); + { U32 maxDictSize = 1U << MIN(MAX(params->cParams.hashLog + 3, params->cParams.chainLog + 1), 31); if (srcSize > maxDictSize) { ip = iend - maxDictSize; src = ip; diff --git a/tests/regression/results.csv b/tests/regression/results.csv index 94d113578..505f4755b 100644 --- a/tests/regression/results.csv +++ b/tests/regression/results.csv @@ -395,19 +395,19 @@ github, level 13 with dict, advanced github, level 13 with dict dms, advanced one pass, 39900 github, level 13 with dict dds, advanced one pass, 39900 github, level 13 with dict copy, advanced one pass, 39948 -github, level 13 with dict load, advanced one pass, 42624 +github, level 13 with dict load, advanced one pass, 42643 github, level 16, advanced one pass, 133209 github, level 16 with dict, advanced one pass, 37902 github, level 16 with dict dms, advanced one pass, 37902 github, level 16 with dict dds, advanced one pass, 37902 github, level 16 with dict copy, advanced one pass, 37892 -github, level 16 with dict load, advanced one pass, 42402 +github, level 16 with dict load, advanced one pass, 42434 github, level 19, advanced one pass, 132879 github, level 19 with dict, advanced one pass, 37916 github, level 19 with dict dms, advanced one pass, 37916 github, level 19 with dict dds, advanced one pass, 37916 github, level 19 with dict copy, advanced one pass, 37906 -github, level 19 with dict load, advanced one pass, 39770 +github, level 19 with dict load, advanced one pass, 40405 github, no source size, advanced one pass, 136331 github, no source size with dict, advanced one pass, 41118 github, long distance mode, advanced one pass, 136331 @@ -713,19 +713,19 @@ github, level 13 with dict, advanced github, level 13 with dict dms, advanced one pass small out, 39900 github, level 13 with dict dds, advanced one pass small out, 39900 github, level 13 with dict copy, advanced one pass small out, 39948 -github, level 13 with dict load, advanced one pass small out, 42624 +github, level 13 with dict load, advanced one pass small out, 42643 github, level 16, advanced one pass small out, 133209 github, level 16 with dict, advanced one pass small out, 37902 github, level 16 with dict dms, advanced one pass small out, 37902 github, level 16 with dict dds, advanced one pass small out, 37902 github, level 16 with dict copy, advanced one pass small out, 37892 -github, level 16 with dict load, advanced one pass small out, 42402 +github, level 16 with dict load, advanced one pass small out, 42434 github, level 19, advanced one pass small out, 132879 github, level 19 with dict, advanced one pass small out, 37916 github, level 19 with dict dms, advanced one pass small out, 37916 github, level 19 with dict dds, advanced one pass small out, 37916 github, level 19 with dict copy, advanced one pass small out, 37906 -github, level 19 with dict load, advanced one pass small out, 39770 +github, level 19 with dict load, advanced one pass small out, 40405 github, no source size, advanced one pass small out, 136331 github, no source size with dict, advanced one pass small out, 41118 github, long distance mode, advanced one pass small out, 136331 @@ -1031,19 +1031,19 @@ github, level 13 with dict, advanced github, level 13 with dict dms, advanced streaming, 39900 github, level 13 with dict dds, advanced streaming, 39900 github, level 13 with dict copy, advanced streaming, 39948 -github, level 13 with dict load, advanced streaming, 42624 +github, level 13 with dict load, advanced streaming, 42643 github, level 16, advanced streaming, 133209 github, level 16 with dict, advanced streaming, 37902 github, level 16 with dict dms, advanced streaming, 37902 github, level 16 with dict dds, advanced streaming, 37902 github, level 16 with dict copy, advanced streaming, 37892 -github, level 16 with dict load, advanced streaming, 42402 +github, level 16 with dict load, advanced streaming, 42434 github, level 19, advanced streaming, 132879 github, level 19 with dict, advanced streaming, 37916 github, level 19 with dict dms, advanced streaming, 37916 github, level 19 with dict dds, advanced streaming, 37916 github, level 19 with dict copy, advanced streaming, 37906 -github, level 19 with dict load, advanced streaming, 39770 +github, level 19 with dict load, advanced streaming, 40405 github, no source size, advanced streaming, 136331 github, no source size with dict, advanced streaming, 41118 github, long distance mode, advanced streaming, 136331