]> git.ipfire.org Git - thirdparty/zstd.git/commit
"Short cache" optimization for level 1-4 DMS (+5-30% compression speed) (#3152)
authorElliot Gorokhovsky <embg@fb.com>
Tue, 21 Jun 2022 21:27:19 +0000 (14:27 -0700)
committerGitHub <noreply@github.com>
Tue, 21 Jun 2022 21:27:19 +0000 (17:27 -0400)
commitf6ef14329f396eb8b2c1290790e7547d070d9511
treea04f1286d829e8467871b594db5e3dc25d28b4d8
parenteb842a22609c8ae52078ee7a05a62bfea490d4c1
"Short cache" optimization for level 1-4 DMS (+5-30% compression speed) (#3152)

* first attempt at fast DMS short cache

* significant wins for some scenarios

* fix all clang regressions

* nits

* fix 1.5% gcc11 regression on hot 110Kdict scenario

* fix CI

* nit

* Add tags to doublefast hash table

* use tags in doublefast DMS

* Fix CI

* Clean up some hardcoded logic / constants

* Switch forCCtx to an enum

* nit

* add short cache to ip+1 long search

* Move tag size into hashLog

* Minor nits

* Truncate dictionaries greater than 16MB in short cache mode

* Helper function for tag comparison

* Cap short cache hashLog at 24 to prevent overflow

* size_t dictTagsMatch -> int dictTagsMatch

* nit

* Clean up and comment dictionary truncation

* Move ZSTD_tableFillPurpose_e next to ZSTD_dictTableLoadMethod_e

* Comment and expand helper functions

* Asserts and documentation

* nit
lib/compress/zstd_compress.c
lib/compress/zstd_compress_internal.h
lib/compress/zstd_double_fast.c
lib/compress/zstd_double_fast.h
lib/compress/zstd_fast.c
lib/compress/zstd_fast.h
lib/compress/zstd_ldm.c