aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-ce-task-projectanalysis
diff options
context:
space:
mode:
authorDuarte Meneses <duarte.meneses@sonarsource.com>2019-07-30 15:45:06 -0500
committerSonarTech <sonartech@sonarsource.com>2019-09-04 20:21:04 +0200
commitbc3f8a1cb0b0cb62da450496c66200373c8abe83 (patch)
treebe21aa607fb0ecac282551bf53ae39667352665f /server/sonar-ce-task-projectanalysis
parent1d02b47100a7193552b794235ed49ab83a2a3192 (diff)
downloadsonarqube-bc3f8a1cb0b0cb62da450496c66200373c8abe83.tar.gz
sonarqube-bc3f8a1cb0b0cb62da450496c66200373c8abe83.zip
Use CompactMap instead of HashMap for Measures
Diffstat (limited to 'server/sonar-ce-task-projectanalysis')
-rw-r--r--server/sonar-ce-task-projectanalysis/build.gradle1
-rw-r--r--server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/MapBasedRawMeasureRepository.java6
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<T> implements MeasureRepository {
private final Function<Component, T> componentToKey;
- private final Map<T, Map<MeasureKey, Measure>> measures = new HashMap<>();
+ private final Map<T, Map<MeasureKey, Measure>> measures = new CompactHashMap<>();
public MapBasedRawMeasureRepository(Function<Component, T> componentToKey) {
this.componentToKey = requireNonNull(componentToKey);
@@ -152,7 +152,7 @@ public final class MapBasedRawMeasureRepository<T> implements MeasureRepository
requireNonNull(overridePolicy);
T componentKey = componentToKey.apply(component);
- Map<MeasureKey, Measure> measuresPerMetric = measures.computeIfAbsent(componentKey, key -> new HashMap<>());
+ Map<MeasureKey, Measure> measuresPerMetric = measures.computeIfAbsent(componentKey, key -> new CompactHashMap<>());
MeasureKey key = new MeasureKey(metric.getKey());
if (!measuresPerMetric.containsKey(key) || overridePolicy == OverridePolicy.OVERRIDE) {
measuresPerMetric.put(key, measure);