Reduce allocation and copying in retrace partitioning
Bug: b/394560159
Change-Id: Ib5487e0ad3912385f22d7c5a27d47c7cff64c763
diff --git a/src/main/java/com/android/tools/r8/retrace/internal/ProguardMapPartitionerOnClassNameToText.java b/src/main/java/com/android/tools/r8/retrace/internal/ProguardMapPartitionerOnClassNameToText.java
index 4fdc94a..eb507b9 100644
--- a/src/main/java/com/android/tools/r8/retrace/internal/ProguardMapPartitionerOnClassNameToText.java
+++ b/src/main/java/com/android/tools/r8/retrace/internal/ProguardMapPartitionerOnClassNameToText.java
@@ -142,18 +142,13 @@
holder, classNameMapper.getSourceFile(holder));
}
});
- StringBuilder payloadBuilder = new StringBuilder();
if (!partitionFileNameBuilder.isEmpty()) {
- payloadBuilder
- .append("# ")
- .append(partitionFileNameBuilder.build().serialize())
- .append("\n");
+ payload = "# " + partitionFileNameBuilder.build().serialize() + "\n" + payload;
}
- payloadBuilder.append(payload);
mappingPartitionConsumer.accept(
new MappingPartitionImpl(
classNamingForNameMapper.renamedName,
- payloadBuilder.toString().getBytes(StandardCharsets.UTF_8)));
+ payload.getBytes(StandardCharsets.UTF_8)));
keys.add(classNamingForNameMapper.renamedName);
});
MapVersion mapVersion = MapVersion.MAP_VERSION_UNKNOWN;