aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/android/java/com/google/devtools/build/android/RelativeAssetPath.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2016-07-26 14:29:48 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-07-27 11:14:04 +0000
commit2745f0bafd7d549688480cdee3f021de489c719e (patch)
tree4bc375688e5af969414b1bc3633dec47e8b1f9d0 /src/tools/android/java/com/google/devtools/build/android/RelativeAssetPath.java
parent3cf21261bf756c937551c7d852dbca5c954fc44f (diff)
Improve resource DataKey serialization perf a bit
Address the TODO about using toString in the TreeMap comparator by using DataKey#compareTo. Also, use the entrySet to iterate K-V pairs instead of calling get(key). Synthetic benchmark w/ 10000 random keys: Before: 260ms to serialize After: 33ms to serialize Less of a difference when there are few keys. -- MOS_MIGRATED_REVID=128469407
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android/RelativeAssetPath.java')
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/RelativeAssetPath.java16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/RelativeAssetPath.java b/src/tools/android/java/com/google/devtools/build/android/RelativeAssetPath.java
index b6f595db4e..9940d13d27 100644
--- a/src/tools/android/java/com/google/devtools/build/android/RelativeAssetPath.java
+++ b/src/tools/android/java/com/google/devtools/build/android/RelativeAssetPath.java
@@ -16,7 +16,6 @@ package com.google.devtools.build.android;
import com.google.common.base.MoreObjects;
import com.google.common.base.Preconditions;
import com.google.devtools.build.android.proto.SerializeFormat;
-
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.FileSystem;
@@ -32,7 +31,7 @@ import java.util.Objects;
*
* Note: Assets have no qualifiers or packages.
*/
-public class RelativeAssetPath implements DataKey, Comparable<RelativeAssetPath> {
+public class RelativeAssetPath implements DataKey {
/**
* A Factory that creates RelativeAssetsPath objects whose paths are relative to a given path.
*/
@@ -103,8 +102,17 @@ public class RelativeAssetPath implements DataKey, Comparable<RelativeAssetPath>
}
@Override
- public int compareTo(RelativeAssetPath relativeAssetPath) {
- return this.relativeAssetPath.compareTo(relativeAssetPath.relativeAssetPath);
+ public int compareTo(DataKey otherKey) {
+ if (!(otherKey instanceof RelativeAssetPath)) {
+ return getKeyType().compareTo(otherKey.getKeyType());
+ }
+ RelativeAssetPath otherAssetPath = (RelativeAssetPath) otherKey;
+ return this.relativeAssetPath.compareTo(otherAssetPath.relativeAssetPath);
+ }
+
+ @Override
+ public KeyType getKeyType() {
+ return KeyType.ASSET_PATH;
}
@Override