summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-10-18 18:02:33 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2022-10-18 18:02:33 +0200
commit05d9d98fc2bb3119281206eaaf63effb3b5d194e (patch)
tree0aec4034fcab19ccde2c1cac0bde5c3baf1b4dce
parenta789e80b3f55aaff78b095a091cfcd68668e9c06 (diff)
Correctly pre-size frequently created HashMap
-rw-r--r--container-core/src/main/java/com/yahoo/container/core/HandlerMetricContextUtil.java2
-rw-r--r--container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscServerConnector.java8
2 files changed, 5 insertions, 5 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/core/HandlerMetricContextUtil.java b/container-core/src/main/java/com/yahoo/container/core/HandlerMetricContextUtil.java
index 7a9266446a1..b7a5732561f 100644
--- a/container-core/src/main/java/com/yahoo/container/core/HandlerMetricContextUtil.java
+++ b/container-core/src/main/java/com/yahoo/container/core/HandlerMetricContextUtil.java
@@ -38,7 +38,7 @@ public class HandlerMetricContextUtil {
String name = matched.toString();
String endpoint = request.headers().containsKey("Host") ? request.headers().get("Host").get(0) : null;
- Map<String, String> dimensions = new HashMap<>();
+ Map<String, String> dimensions = new HashMap<>(extraDimensions.size() + 5);
dimensions.put("handler", name);
if (endpoint != null) {
dimensions.put("endpoint", endpoint);
diff --git a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscServerConnector.java b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscServerConnector.java
index 49db22c3e38..b3069a64821 100644
--- a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscServerConnector.java
+++ b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscServerConnector.java
@@ -41,7 +41,7 @@ class JDiscServerConnector extends ServerConnector {
this.metric = metric;
this.connectorName = config.name();
this.listenPort = config.listenPort();
- this.metricCtx = metric.createContext(createConnectorDimensions(listenPort, connectorName));
+ this.metricCtx = metric.createContext(createConnectorDimensions(listenPort, connectorName, 0));
this.statistics = new ConnectionStatistics();
addBean(statistics);
@@ -81,7 +81,7 @@ class JDiscServerConnector extends ServerConnector {
String method = request.getMethod();
String scheme = request.getScheme();
boolean clientAuthenticated = request.getAttribute(RequestUtils.SERVLET_REQUEST_X509CERT) != null;
- Map<String, Object> dimensions = createConnectorDimensions(listenPort, connectorName);
+ Map<String, Object> dimensions = createConnectorDimensions(listenPort, connectorName, extraDimensions.size() + 5);
dimensions.put(MetricDefinitions.METHOD_DIMENSION, method);
dimensions.put(MetricDefinitions.SCHEME_DIMENSION, scheme);
dimensions.put(MetricDefinitions.CLIENT_AUTHENTICATED_DIMENSION, Boolean.toString(clientAuthenticated));
@@ -104,8 +104,8 @@ class JDiscServerConnector extends ServerConnector {
return listenPort;
}
- private static Map<String, Object> createConnectorDimensions(int listenPort, String connectorName) {
- Map<String, Object> props = new HashMap<>();
+ private static Map<String, Object> createConnectorDimensions(int listenPort, String connectorName, int reservedSize) {
+ Map<String, Object> props = new HashMap<>(reservedSize + 2);
props.put(MetricDefinitions.NAME_DIMENSION, connectorName);
props.put(MetricDefinitions.PORT_DIMENSION, listenPort);
return props;