diff options
author | Dan Willemsen <dwillemsen@google.com> | 2016-08-04 15:43:03 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@google.com> | 2016-08-11 01:30:16 -0700 |
commit | 017d8937fa4536eafa306e99bf83c01d9f3d263e (patch) | |
tree | f44542ea160142ab5a2b5aade26ff58b9a44ad51 /java/builder.go | |
parent | 3bf1a085050c797f4af31353325c9ee69ca6c02f (diff) | |
download | build_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