summaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/search/result/Hit.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/result/Hit.java')
-rw-r--r--container-search/src/main/java/com/yahoo/search/result/Hit.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/result/Hit.java b/container-search/src/main/java/com/yahoo/search/result/Hit.java
index 815006edbf5..0bfbecfd9ab 100644
--- a/container-search/src/main/java/com/yahoo/search/result/Hit.java
+++ b/container-search/src/main/java/com/yahoo/search/result/Hit.java
@@ -101,8 +101,12 @@ public class Hit extends ListenableFreezableClass implements Data, Comparable<Hi
public static final String SDDOCNAME_FIELD = "sddocname";
private Map<String,Object> getFieldMap() {
+ return getFieldMap(16);
+ }
+ private Map<String,Object> getFieldMap(int minSize) {
if (fields == null) {
- fields = new LinkedHashMap<>(16);
+ // Compensate for loadfactor and then some, rounded up....
+ fields = new LinkedHashMap<>(2*minSize);
}
return fields;
}
@@ -448,6 +452,14 @@ public class Hit extends ListenableFreezableClass implements Data, Comparable<Hi
public final Map<String,Object> fields() { return getUnmodifiableFieldMap(); }
/**
+ * Will preallocate in order to avoid resizing.
+ * @param minSize
+ */
+ public void reserve(int minSize) {
+ getFieldMap(minSize);
+ }
+
+ /**
* Fields
* @return An iterator for traversing the fields
* @since 5.1.3