This is an automated email from the ASF dual-hosted git repository.
szetszwo pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/ratis.git
The following commit(s) were added to refs/heads/branch-2 by this push:
new 7ecc21424 RATIS-1748. Cache getMetricName to reduce garbage (#786)
7ecc21424 is described below
commit 7ecc214248f3880a9caa69825729abe27766a324
Author: Lari Hotari <[email protected]>
AuthorDate: Thu Nov 17 22:30:18 2022 +0200
RATIS-1748. Cache getMetricName to reduce garbage (#786)
(cherry picked from commit 9724a24af8d5a982526d3925cbc6409828112ee9)
---
.../java/org/apache/ratis/metrics/impl/RatisMetricRegistryImpl.java | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/RatisMetricRegistryImpl.java
b/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/RatisMetricRegistryImpl.java
index 3f213ba24..952ab97b0 100644
---
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/RatisMetricRegistryImpl.java
+++
b/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/RatisMetricRegistryImpl.java
@@ -19,6 +19,7 @@ package org.apache.ratis.metrics.impl;
import java.util.Map;
import java.util.SortedMap;
+import java.util.concurrent.ConcurrentHashMap;
import com.codahale.metrics.ConsoleReporter;
import com.codahale.metrics.Counter;
@@ -43,6 +44,7 @@ public class RatisMetricRegistryImpl implements
RatisMetricRegistry {
private MetricRegistry metricRegistry = new MetricRegistry();
private final MetricRegistryInfo info;
+ private final Map<String, String> metricNameCache = new
ConcurrentHashMap<>();
private JmxReporter jmxReporter;
private ConsoleReporter consoleReporter;
@@ -101,7 +103,7 @@ public class RatisMetricRegistryImpl implements
RatisMetricRegistry {
}
private String getMetricName(String shortName) {
- return MetricRegistry.name(info.getName(), shortName);
+ return metricNameCache.computeIfAbsent(shortName, key ->
MetricRegistry.name(info.getName(), shortName));
}
@Override public <T extends Metric> T register(String name, T metric) throws
IllegalArgumentException {