]> source.dussan.org Git - sonarqube.git/commitdiff
Use Trove for memory efficient Map
authorDuarte Meneses <duarte.meneses@sonarsource.com>
Tue, 30 Jul 2019 19:17:16 +0000 (14:17 -0500)
committerSonarTech <sonartech@sonarsource.com>
Wed, 4 Sep 2019 18:21:05 +0000 (20:21 +0200)
server/sonar-ce-task-projectanalysis/build.gradle
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/MapBasedRawMeasureRepository.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/MeasureToMeasureDto.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/scm/ScmInfoRepositoryImpl.java

index 97914e8b00b09b281bc5c8bb8b6324afbcc370c3..5cfdd62a4d65338f3bf9b53cf49555f7ad08f3c4 100644 (file)
@@ -19,7 +19,7 @@ dependencies {
 
   compile 'org.slf4j:jul-to-slf4j'
   compile 'org.slf4j:slf4j-api'
-
+  compile 'net.sf.trove4j:core:3.1.0'
   compile 'commons-codec:commons-codec'
   compile 'commons-io:commons-io'
   compile 'commons-lang:commons-lang'
@@ -30,8 +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')
   compile project(':server:sonar-db-migration')
index 0aed2b16ddc4dbcd0c4f9018ef2e1d463df5757c..b86e55b5b6899c14e5177aa0200622bf46e0a4f4 100644 (file)
@@ -21,6 +21,7 @@ package org.sonar.ce.task.projectanalysis.measure;
 
 import com.google.common.collect.ImmutableSetMultimap;
 import com.google.common.collect.SetMultimap;
+import gnu.trove.map.hash.THashMap;
 import java.util.Collections;
 import java.util.Map;
 import java.util.Optional;
@@ -28,7 +29,6 @@ import java.util.Set;
 import java.util.function.Function;
 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;
@@ -40,7 +40,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<String, Measure>> measures = new CompactHashMap<>();
+  private final Map<T, Map<String, Measure>> measures = new THashMap<>();
 
   public MapBasedRawMeasureRepository(Function<Component, T> componentToKey) {
     this.componentToKey = requireNonNull(componentToKey);
@@ -141,7 +141,7 @@ public final class MapBasedRawMeasureRepository<T> implements MeasureRepository
     requireNonNull(overridePolicy);
 
     T componentKey = componentToKey.apply(component);
-    Map<String, Measure> measuresPerMetric = measures.computeIfAbsent(componentKey, key -> new CompactHashMap<>());
+    Map<String, Measure> measuresPerMetric = measures.computeIfAbsent(componentKey, key -> new THashMap<>());
     if (!measuresPerMetric.containsKey(metric.getKey()) || overridePolicy == OverridePolicy.OVERRIDE) {
       measuresPerMetric.put(metric.getKey(), measure);
     }
index 316920eea2a0f61bafac4499747e45b97101d722..d9b6abb9fdf2c5ae9c7cf553de86c84b905a4651 100644 (file)
@@ -25,9 +25,7 @@ import org.sonar.ce.task.projectanalysis.metric.Metric;
 import org.sonar.db.measure.LiveMeasureDto;
 import org.sonar.db.measure.MeasureDto;
 import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
-import org.sonar.ce.task.projectanalysis.component.Component;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
-import org.sonar.ce.task.projectanalysis.metric.Metric;
 
 public class MeasureToMeasureDto {
 
index 858a0e2f4b8769c4b7e27eb8ce1399f81c599ea7..5de605b95470612f6b6b2db7f70920da1279afc4 100644 (file)
@@ -20,6 +20,7 @@
 package org.sonar.ce.task.projectanalysis.scm;
 
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.Optional;
 import org.sonar.api.utils.log.Logger;
@@ -31,7 +32,6 @@ import org.sonar.ce.task.projectanalysis.component.Component.Status;
 import org.sonar.ce.task.projectanalysis.source.SourceHashRepository;
 import org.sonar.ce.task.projectanalysis.source.SourceLinesDiff;
 import org.sonar.scanner.protocol.output.ScannerReport;
-import vlsi.utils.CompactHashMap;
 
 import static java.util.Objects.requireNonNull;
 
@@ -40,7 +40,7 @@ public class ScmInfoRepositoryImpl implements ScmInfoRepository {
   private static final Logger LOGGER = Loggers.get(ScmInfoRepositoryImpl.class);
 
   private final BatchReportReader scannerReportReader;
-  private final Map<Component, Optional<ScmInfo>> scmInfoCache = new CompactHashMap<>();
+  private final Map<Component, Optional<ScmInfo>> scmInfoCache = new HashMap<>();
   private final ScmInfoDbLoader scmInfoDbLoader;
   private final AnalysisMetadataHolder analysisMetadata;
   private final SourceLinesDiff sourceLinesDiff;