Dexpreopt: use "speed-profile" if a system server jar has a profile.
The motivation is to reduce file size and in-process memory footprint for "services" (which is currently the only system server jar that has a profile). For other system server jars that have no profile keep using "speed", as enabling "speed-profile" for them would completely disable AOT-compiled code. Compare .odex file size: - before: 44360 services.odex - after: 24968 services.odex Bug: b/237399630 Test: lunch aosp_sargo-userdebug && m Change-Id: I844b9607c496d3d6e7048dc6bb8cd958ecbaa441
This commit is contained in:
parent
40f9873612
commit
6fad1d0dba
1 changed files with 5 additions and 1 deletions
|
@ -394,10 +394,14 @@ func dexpreoptCommand(ctx android.PathContext, globalSoong *GlobalSoongConfig, g
|
|||
if !android.PrefixInList(preoptFlags, "--compiler-filter=") {
|
||||
var compilerFilter string
|
||||
if systemServerJars.ContainsJar(module.Name) {
|
||||
// Jars of system server, use the product option if it is set, speed otherwise.
|
||||
if global.SystemServerCompilerFilter != "" {
|
||||
// Use the product option if it is set.
|
||||
compilerFilter = global.SystemServerCompilerFilter
|
||||
} else if profile != nil {
|
||||
// Use "speed-profile" for system server jars that have a profile.
|
||||
compilerFilter = "speed-profile"
|
||||
} else {
|
||||
// Use "speed" for system server jars that do not have a profile.
|
||||
compilerFilter = "speed"
|
||||
}
|
||||
} else if contains(global.SpeedApps, module.Name) || contains(global.SystemServerApps, module.Name) {
|
||||
|
|
Loading…
Reference in a new issue