diff options
author | Jon Bratseth <bratseth@oath.com> | 2018-05-23 10:11:18 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-23 10:11:18 +0200 |
commit | f9203fefc10d507755bab4b41468240f68cccff0 (patch) | |
tree | 657984ca049491cc274f8d57e010159785a901c3 | |
parent | 2a815c616eda0bab5b5cedc258119110dce26d04 (diff) | |
parent | 744cdca6a589db1fb19cfdc54213b8102f683e8c (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.java | 12 |
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. */ |