aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-05-23 10:11:18 +0200
committerGitHub <noreply@github.com>2018-05-23 10:11:18 +0200
commitf9203fefc10d507755bab4b41468240f68cccff0 (patch)
tree657984ca049491cc274f8d57e010159785a901c3
parent2a815c616eda0bab5b5cedc258119110dce26d04 (diff)
parent744cdca6a589db1fb19cfdc54213b8102f683e8c (diff)
Merge pull request #5904 from vespa-engine/balder/faster-getId
Use and explicit StringBuilder to optimise id/uri creation.
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/FastHit.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FastHit.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FastHit.java
index 0b3ddf689d9..bffc0317df7 100644
--- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FastHit.java
+++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FastHit.java
@@ -107,7 +107,10 @@ public class FastHit extends Hit {
// Fallback to index:[source]/[partid]/[id]
if (indexUri != null) return indexUri;
- indexUri = new URI("index:" + getSource() + "/" + getPartId() + "/" + asHexString(getGlobalId()));
+ StringBuilder sb = new StringBuilder(64);
+ sb.append("index:").append(getSource()).append('/').append(getPartId()).append('/');
+ asHexString(sb, getGlobalId());
+ indexUri = new URI(sb.toString());
return indexUri;
}
@@ -348,7 +351,10 @@ public class FastHit extends Hit {
/** @deprecated do not use */
@Deprecated // TODO: Make private on Vespa 7
public static String asHexString(GlobalId gid) {
- StringBuilder sb = new StringBuilder();
+ return asHexString(new StringBuilder(), gid).toString();
+ }
+
+ private static StringBuilder asHexString(StringBuilder sb, GlobalId gid) {
byte[] rawGid = gid.getRawId();
for (byte b : rawGid) {
String hex = Integer.toHexString(0xFF & b);
@@ -357,7 +363,7 @@ public class FastHit extends Hit {
}
sb.append(hex);
}
- return sb.toString();
+ return sb;
}
/** A set view of all the field names in this hit. Add/addAll is not supported but remove is. */