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 /Android.bp | |
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 'Android.bp')
-rw-r--r-- | Android.bp | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -206,8 +206,10 @@ blueprint_go_binary { blueprint_go_binary { name: "soong_jar", + deps: ["android-archive-zip"], srcs: [ "cmd/soong_jar/soong_jar.go", + "cmd/soong_jar/rate_limit.go", ], } |