From bc3f8a1cb0b0cb62da450496c66200373c8abe83 Mon Sep 17 00:00:00 2001 From: Duarte Meneses Date: Tue, 30 Jul 2019 15:45:06 -0500 Subject: [PATCH] Use CompactMap instead of HashMap for Measures --- server/sonar-ce-task-projectanalysis/build.gradle | 1 + .../measure/MapBasedRawMeasureRepository.java | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/server/sonar-ce-task-projectanalysis/build.gradle b/server/sonar-ce-task-projectanalysis/build.gradle index b801b25a684..97914e8b00b 100644 --- a/server/sonar-ce-task-projectanalysis/build.gradle +++ b/server/sonar-ce-task-projectanalysis/build.gradle @@ -30,6 +30,7 @@ dependencies { compile 'com.googlecode.java-diff-utils:diffutils' compile 'org.mybatis:mybatis' compile 'org.picocontainer:picocontainer' + compile 'com.github.vlsi.compactmap:compactmap:1.3.0' compile project(':sonar-core') compile project(':server:sonar-ce-task') diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/MapBasedRawMeasureRepository.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/MapBasedRawMeasureRepository.java index ee8b6207b65..36bc9643707 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/MapBasedRawMeasureRepository.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/MapBasedRawMeasureRepository.java @@ -22,7 +22,6 @@ package org.sonar.ce.task.projectanalysis.measure; import com.google.common.collect.ImmutableSetMultimap; import com.google.common.collect.SetMultimap; import java.util.Collections; -import java.util.HashMap; import java.util.Map; import java.util.Optional; import java.util.Set; @@ -33,6 +32,7 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; import org.sonar.ce.task.projectanalysis.component.Component; import org.sonar.ce.task.projectanalysis.metric.Metric; +import vlsi.utils.CompactHashMap; import static com.google.common.base.Preconditions.checkArgument; import static java.lang.String.format; @@ -44,7 +44,7 @@ import static java.util.Objects.requireNonNull; */ public final class MapBasedRawMeasureRepository implements MeasureRepository { private final Function componentToKey; - private final Map> measures = new HashMap<>(); + private final Map> measures = new CompactHashMap<>(); public MapBasedRawMeasureRepository(Function componentToKey) { this.componentToKey = requireNonNull(componentToKey); @@ -152,7 +152,7 @@ public final class MapBasedRawMeasureRepository implements MeasureRepository requireNonNull(overridePolicy); T componentKey = componentToKey.apply(component); - Map measuresPerMetric = measures.computeIfAbsent(componentKey, key -> new HashMap<>()); + Map measuresPerMetric = measures.computeIfAbsent(componentKey, key -> new CompactHashMap<>()); MeasureKey key = new MeasureKey(metric.getKey()); if (!measuresPerMetric.containsKey(key) || overridePolicy == OverridePolicy.OVERRIDE) { measuresPerMetric.put(key, measure); -- 2.39.5