Skip to content

v1.4.0 — skip re-deflating already-compressed content, mmap fixes, OOM guard

Choose a tag to compare

@Kukis13 Kukis13 released this 29 Jul 17:48
· 4 commits to main since this release

Highlights

  • Magic-byte already-compressed detection — entries are recognized by file signature (jars/zips, gzip, bzip2, xz, 7-zip, zstd, rar, lz4, png, jpeg, gif, webp, mp4/mov, webm/mkv, ogg, woff/woff2) and STORED immediately instead of attempting DEFLATE. Geometric-mean speedup across nine real production Zip tasks jumps from ~5.4× (1.3.0) to ~26.5×.
  • New skipAlreadyCompressed task property (default true) — the speed above trades real archive size for it (6–17% larger across the in-build benchmark suite). Set skipAlreadyCompressed = false to always attempt DEFLATE instead, for 1.3.x-like size when that trade isn't worth it for a given archive.
  • Fixed a Windows-only mmap file-lock bug — an unreleased MappedByteBuffer on a large entry's source file kept it locked against deletion/rewrite until GC, which could break a later task reusing the same file in the same Gradle daemon.
  • OOM guard for small Gradle daemon heaps — the mmap-path buffer budget now scales down with heap size instead of a fixed 128 MiB ceiling, and a one-time warning fires when the daemon's max heap is under 2048 MiB.

Benchmarks

Full refresh across all 9 in-build projects and all 11 fixed-corpus projects — see docs/BENCHMARKS.md.

Published to the Gradle Plugin Portal.