Lots of performance improvements. We're now substantially faster than other implementations for inflate (decompression), and faster in the most important cases for compression.
What's Changed
- Speed up emit_dist with precomputed length codings for static trees by @brian-pane in #264
- Add a comment to explain how Crc32HashCalc is sometimes Crc32C by @brian-pane in #266
- Fix the usage message for crc32_bench by @brian-pane in #267
- Add some comments explaining the chained hash data structure. by @brian-pane in #269
- Cleanups for struct State by @brian-pane in #274
- Begin converting match offsets in struct State to u16 by @brian-pane in #275
- Remove the cloning of scan_start & scan_end in longest_match_help by @brian-pane in #268
- Simplify deflate window by @folkertdev in #272
- cleanup of
fill_window
by @folkertdev in #271 - Add checks for State memory layout by @brian-pane in #278
- Update zlib-ng version 2.2.3 by @folkertdev in #282
- Move the TreeDesc fields and finish adding cache line markers to State by @brian-pane in #279
- Make various fields in the State structure smaller by @brian-pane in #281
- Hint to the compiler to inline the fill_window function by @brian-pane in #270
- Remove the padding from the State structure by @brian-pane in #283
- Optimize away compare256 for short matches by @brian-pane in #284
- Faster comparisons for priority queue by @brian-pane in #285
- Fix CI by @bjorn3 in #288
- Add CI benchmarking by @bjorn3 in #287
- fuzzer: make sure the buffer is large enough to store the input by @folkertdev in #286
- compare our and stock zlib compression levels in README by @folkertdev in #291
- specialize
inflate_fast_help
foravx2
by @folkertdev in #289 - gather benchmark data for chromium (only inflate is relevant) by @folkertdev in #290
- manual struct target feature by @folkertdev in #292
- Make the matches field smaller to improve cache locality by @brian-pane in #293
- apply the
crc
target feature to the acle crc32 implementation by @folkertdev in #294
Full Changelog: v0.4.1...v0.4.2