]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
update hrlog rule to favor compression ratio a bit more at low levels
authorYann Collet <yann.collet.73@gmail.com>
Sat, 8 Feb 2025 02:57:44 +0000 (18:57 -0800)
committerYann Collet <cyan@fb.com>
Mon, 10 Feb 2025 18:46:37 +0000 (10:46 -0800)
lib/compress/zstd_ldm.c
programs/zstd.1.md
tests/regression/results.csv

index 39f23c56561f04a72c927c4e17e743bd37a16a11..e85e904da7d515cb20b415469bdce42ce9ffa55c 100644 (file)
@@ -141,7 +141,7 @@ void ZSTD_ldm_adjustParameters(ldmParams_t* params,
     if (params->hashRateLog == 0) {
         assert(1 <= (int)cParams->strategy && (int)cParams->strategy <= 9);
         /* mapping: strat1 -> rate8 ... strat9 -> rate4*/
-        params->hashRateLog = 9 - ((cParams->strategy+1)/2);
+        params->hashRateLog = 7 - (cParams->strategy/3);
     }
     if (params->hashLog == 0) {
         params->hashLog = MAX(ZSTD_HASHLOG_MIN, params->windowLog - params->hashRateLog);
index be2179e5d0925a19424f262f52d15ced23c62660..1459abb9f413810b52898df13205325ce5667b53 100644 (file)
@@ -464,7 +464,7 @@ The list of available _options_:
     Larger values will improve compression speed. Deviating far from the
     default value will likely result in a decrease in compression ratio.
 
-    The default value varies between 4 and 8, depending on `strategy`.
+    The default value varies between 4 and 7, depending on `strategy`.
 
 - `ldmHashLog`=_lhlog_, `lhlog`=_lhlog_:
     Specify the maximum size for a hash table used for long distance matching.
index 467073ebfe5fe77b28f5a9064bfd5f31ff0d0889..cc7500d968a598eda9b9a02881b523603a16f5d9 100644 (file)
@@ -111,9 +111,9 @@ silesia,                            level 9,                            zstdcli,
 silesia,                            level 13,                           zstdcli,                            4488438
 silesia,                            level 16,                           zstdcli,                            4358150
 silesia,                            level 19,                           zstdcli,                            4265929
-silesia,                            long distance mode,                 zstdcli,                            4828930
+silesia,                            long distance mode,                 zstdcli,                            4827199
 silesia,                            multithreaded,                      zstdcli,                            4833113
-silesia,                            multithreaded long distance mode,   zstdcli,                            4828930
+silesia,                            multithreaded long distance mode,   zstdcli,                            4827199
 silesia,                            small window log,                   zstdcli,                            7094528
 silesia,                            small hash log,                     zstdcli,                            6527214
 silesia,                            small chain log,                    zstdcli,                            4911647
@@ -137,9 +137,9 @@ silesia.tar,                        level 13,                           zstdcli,
 silesia.tar,                        level 16,                           zstdcli,                            4357018
 silesia.tar,                        level 19,                           zstdcli,                            4259593
 silesia.tar,                        no source size,                     zstdcli,                            4836000
-silesia.tar,                        long distance mode,                 zstdcli,                            4833141
+silesia.tar,                        long distance mode,                 zstdcli,                            4831415
 silesia.tar,                        multithreaded,                      zstdcli,                            4836004
-silesia.tar,                        multithreaded long distance mode,   zstdcli,                            4833141
+silesia.tar,                        multithreaded long distance mode,   zstdcli,                            4831415
 silesia.tar,                        small window log,                   zstdcli,                            7100110
 silesia.tar,                        small hash log,                     zstdcli,                            6530127
 silesia.tar,                        small chain log,                    zstdcli,                            4915865
@@ -217,9 +217,9 @@ github.tar,                         level 19,                           zstdcli,
 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,                            38801
+github.tar,                         long distance mode,                 zstdcli,                            38775
 github.tar,                         multithreaded,                      zstdcli,                            38888
-github.tar,                         multithreaded long distance mode,   zstdcli,                            38801
+github.tar,                         multithreaded long distance mode,   zstdcli,                            38775
 github.tar,                         small window log,                   zstdcli,                            198539
 github.tar,                         small hash log,                     zstdcli,                            129874
 github.tar,                         small chain log,                    zstdcli,                            41673
@@ -251,9 +251,9 @@ silesia,                            level 13,                           advanced
 silesia,                            level 16,                           advanced one pass,                  4356799
 silesia,                            level 19,                           advanced one pass,                  4265851
 silesia,                            no source size,                     advanced one pass,                  4832054
-silesia,                            long distance mode,                 advanced one pass,                  4827748
+silesia,                            long distance mode,                 advanced one pass,                  4826152
 silesia,                            multithreaded,                      advanced one pass,                  4833065
-silesia,                            multithreaded long distance mode,   advanced one pass,                  4828882
+silesia,                            multithreaded long distance mode,   advanced one pass,                  4827151
 silesia,                            small window log,                   advanced one pass,                  7094480
 silesia,                            small hash log,                     advanced one pass,                  6525510
 silesia,                            small chain log,                    advanced one pass,                  4912248
@@ -285,9 +285,9 @@ silesia.tar,                        level 13,                           advanced
 silesia.tar,                        level 16,                           advanced one pass,                  4355572
 silesia.tar,                        level 19,                           advanced one pass,                  4257629
 silesia.tar,                        no source size,                     advanced one pass,                  4829268
-silesia.tar,                        long distance mode,                 advanced one pass,                  4821065
+silesia.tar,                        long distance mode,                 advanced one pass,                  4819329
 silesia.tar,                        multithreaded,                      advanced one pass,                  4836000
-silesia.tar,                        multithreaded long distance mode,   advanced one pass,                  4833137
+silesia.tar,                        multithreaded long distance mode,   advanced one pass,                  4831411
 silesia.tar,                        small window log,                   advanced one pass,                  7100064
 silesia.tar,                        small hash log,                     advanced one pass,                  6530222
 silesia.tar,                        small chain log,                    advanced one pass,                  4915689
@@ -535,9 +535,9 @@ github.tar,                         level 19 with dict copy,            advanced
 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,                  38797
+github.tar,                         long distance mode,                 advanced one pass,                  38771
 github.tar,                         multithreaded,                      advanced one pass,                  38884
-github.tar,                         multithreaded long distance mode,   advanced one pass,                  38797
+github.tar,                         multithreaded long distance mode,   advanced one pass,                  38771
 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
@@ -569,9 +569,9 @@ silesia,                            level 13,                           advanced
 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,        4832054
-silesia,                            long distance mode,                 advanced one pass small out,        4827748
+silesia,                            long distance mode,                 advanced one pass small out,        4826152
 silesia,                            multithreaded,                      advanced one pass small out,        4833065
-silesia,                            multithreaded long distance mode,   advanced one pass small out,        4828882
+silesia,                            multithreaded long distance mode,   advanced one pass small out,        4827151
 silesia,                            small window log,                   advanced one pass small out,        7094480
 silesia,                            small hash log,                     advanced one pass small out,        6525510
 silesia,                            small chain log,                    advanced one pass small out,        4912248
@@ -603,9 +603,9 @@ silesia.tar,                        level 13,                           advanced
 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,        4829268
-silesia.tar,                        long distance mode,                 advanced one pass small out,        4821065
+silesia.tar,                        long distance mode,                 advanced one pass small out,        4819329
 silesia.tar,                        multithreaded,                      advanced one pass small out,        4836000
-silesia.tar,                        multithreaded long distance mode,   advanced one pass small out,        4833137
+silesia.tar,                        multithreaded long distance mode,   advanced one pass small out,        4831411
 silesia.tar,                        small window log,                   advanced one pass small out,        7100064
 silesia.tar,                        small hash log,                     advanced one pass small out,        6530222
 silesia.tar,                        small chain log,                    advanced one pass small out,        4915689
@@ -853,9 +853,9 @@ github.tar,                         level 19 with dict copy,            advanced
 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,        38797
+github.tar,                         long distance mode,                 advanced one pass small out,        38771
 github.tar,                         multithreaded,                      advanced one pass small out,        38884
-github.tar,                         multithreaded long distance mode,   advanced one pass small out,        38797
+github.tar,                         multithreaded long distance mode,   advanced one pass small out,        38771
 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
@@ -887,9 +887,9 @@ silesia,                            level 13,                           advanced
 silesia,                            level 16,                           advanced streaming,                 4358094
 silesia,                            level 19,                           advanced streaming,                 4265908
 silesia,                            no source size,                     advanced streaming,                 4835768
-silesia,                            long distance mode,                 advanced streaming,                 4831544
+silesia,                            long distance mode,                 advanced streaming,                 4829919
 silesia,                            multithreaded,                      advanced streaming,                 4833065
-silesia,                            multithreaded long distance mode,   advanced streaming,                 4828882
+silesia,                            multithreaded long distance mode,   advanced streaming,                 4827151
 silesia,                            small window log,                   advanced streaming,                 7110591
 silesia,                            small hash log,                     advanced streaming,                 6525259
 silesia,                            small chain log,                    advanced streaming,                 4911577
@@ -921,9 +921,9 @@ silesia.tar,                        level 13,                           advanced
 silesia.tar,                        level 16,                           advanced streaming,                 4358029
 silesia.tar,                        level 19,                           advanced streaming,                 4258228
 silesia.tar,                        no source size,                     advanced streaming,                 4846779
-silesia.tar,                        long distance mode,                 advanced streaming,                 4831119
+silesia.tar,                        long distance mode,                 advanced streaming,                 4829404
 silesia.tar,                        multithreaded,                      advanced streaming,                 4836000
-silesia.tar,                        multithreaded long distance mode,   advanced streaming,                 4833137
+silesia.tar,                        multithreaded long distance mode,   advanced streaming,                 4831411
 silesia.tar,                        small window log,                   advanced streaming,                 7117024
 silesia.tar,                        small hash log,                     advanced streaming,                 6529503
 silesia.tar,                        small chain log,                    advanced streaming,                 4915956
@@ -1171,9 +1171,9 @@ github.tar,                         level 19 with dict copy,            advanced
 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,                 38797
+github.tar,                         long distance mode,                 advanced streaming,                 38771
 github.tar,                         multithreaded,                      advanced streaming,                 38884
-github.tar,                         multithreaded long distance mode,   advanced streaming,                 38797
+github.tar,                         multithreaded long distance mode,   advanced streaming,                 38771
 github.tar,                         small window log,                   advanced streaming,                 199553
 github.tar,                         small hash log,                     advanced streaming,                 129870
 github.tar,                         small chain log,                    advanced streaming,                 41669