From 0849c14aea2eb11479ddffb50c5467f18fd42da9 Mon Sep 17 00:00:00 2001 From: Jared Duke Date: Fri, 28 Jan 2022 11:30:16 -0800 Subject: [PATCH] Limit JIT tier for javac javac is generally a short-lived JVM invocation that doesn't greatly benefit from deep JIT tiering. As such, favor faster startup time by limiting to tier 1 JIT for javac execution. This should greatly reduce overall CPU usage from Java compilation for an arbitrary Android build (~20%), and deliver a small but modest improvement in overall Java build times (~5%). Representative incremental build times with this change: * real 18m3.507s * user 563m4.838s and without: * real 19m11.909s * user 751m27.790s Follow-up changes will apply similar flags for other short-lived JVM build commands. Bug: 205303544 Test: m Change-Id: Ic6315b976063f4330902930a6cf5e5cb394c554c --- java/config/config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/config/config.go b/java/config/config.go index 30c6f91aa..ea2f93449 100644 --- a/java/config/config.go +++ b/java/config/config.go @@ -60,7 +60,7 @@ var ( const ( JavaVmFlags = `-XX:OnError="cat hs_err_pid%p.log" -XX:CICompilerCount=6 -XX:+UseDynamicNumberOfGCThreads` - JavacVmFlags = `-J-XX:OnError="cat hs_err_pid%p.log" -J-XX:CICompilerCount=6 -J-XX:+UseDynamicNumberOfGCThreads` + JavacVmFlags = `-J-XX:OnError="cat hs_err_pid%p.log" -J-XX:CICompilerCount=6 -J-XX:+UseDynamicNumberOfGCThreads -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1` ) func init() {