aboutsummaryrefslogtreecommitdiffstats
path: root/java/builder.go
diff options
context:
space:
mode:
authorDan Willemsen <dwillemsen@google.com>2016-08-04 15:43:03 -0700
committerDan Willemsen <dwillemsen@google.com>2016-08-11 01:30:16 -0700
commit017d8937fa4536eafa306e99bf83c01d9f3d263e (patch)
treef44542ea160142ab5a2b5aade26ff58b9a44ad51 /java/builder.go
parent3bf1a085050c797f4af31353325c9ee69ca6c02f (diff)
downloadbuild_soong-017d8937fa4536eafa306e99bf83c01d9f3d263e.tar.gz
build_soong-017d8937fa4536eafa306e99bf83c01d9f3d263e.tar.bz2
build_soong-017d8937fa4536eafa306e99bf83c01d9f3d263e.zip
soong_jar: Parallel compression
This compresses multiple files in parallel, and will split up larger files (5MB+) into smaller chunks (1MB) to compress in parallel. There is a small size overhead to recombine the chunks, but it's only a few bytes per chunk, so for a 1MB chunk, it's minimal. Rough numbers, with everything in the page cache, this can compress ~4GB (1000 files) down to 1GB in 6.5 seconds, instead of 120 seconds with the non-parallel soong_jar and 150 seconds with zip. Go's DEFLATE algorithm is still a bit worse than zip's -- about 3.5% larger file sizes, but for most of our "dist" targets that is fine. Change-Id: Ie4886c7d0f954ace46e599156e35fea7e74d6dd7
Diffstat (limited to 'java/builder.go')
0 files changed, 0 insertions, 0 deletions