Optimize getJarJarRuleText
getJarJarRuleText accounted for 10% of all allocations in Soong totalling 10 GB due to repeated string growth. Use a StringBuilder instead. Test: builds Change-Id: I4bce338d161cb2f9c0aba1036ced55d2e8ee6b14
This commit is contained in:
parent
3e8d483be0
commit
0cec59e1d9
1 changed files with 7 additions and 3 deletions
10
java/base.go
10
java/base.go
|
|
@ -2933,14 +2933,18 @@ func (module *Module) collectJarJarRules(ctx android.ModuleContext) *JarJarProvi
|
|||
// Get the jarjar rule text for a given provider for the fully resolved rules. Classes that map
|
||||
// to "" won't be in this list because they shouldn't be renamed yet.
|
||||
func getJarJarRuleText(provider *JarJarProviderData) string {
|
||||
result := ""
|
||||
result := strings.Builder{}
|
||||
for _, orig := range android.SortedKeys(provider.Rename) {
|
||||
renamed := provider.Rename[orig]
|
||||
if renamed != "" {
|
||||
result += "rule " + orig + " " + renamed + "\n"
|
||||
result.WriteString("rule ")
|
||||
result.WriteString(orig)
|
||||
result.WriteString(" ")
|
||||
result.WriteString(renamed)
|
||||
result.WriteString("\n")
|
||||
}
|
||||
}
|
||||
return result
|
||||
return result.String()
|
||||
}
|
||||
|
||||
// Repackage the flags if the jarjar rule txt for the flags is generated
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue