aboutsummaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorDuarte Meneses <duarte.meneses@sonarsource.com>2019-07-30 14:17:16 -0500
committerSonarTech <sonartech@sonarsource.com>2019-09-04 20:21:05 +0200
commita16d96bc3672ba63be6c88f40dbdf857b52a8c4e (patch)
tree15b996efab0c6c8fa633d1a6d13095b92922b7e2 /server
parentf0f1986388884dbadab590bd03b33720a669f0d9 (diff)
downloadsonarqube-a16d96bc3672ba63be6c88f40dbdf857b52a8c4e.tar.gz
sonarqube-a16d96bc3672ba63be6c88f40dbdf857b52a8c4e.zip
Use Trove for memory efficient Map
Diffstat (limited to 'server')
-rw-r--r--server/sonar-ce-task-projectanalysis/build.gradle5
-rw-r--r--server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/MapBasedRawMeasureRepository.java6
-rw-r--r--server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/MeasureToMeasureDto.java2
-rw-r--r--server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/scm/ScmInfoRepositoryImpl.java4
4 files changed, 7 insertions, 10 deletions
diff --git a/server/sonar-ce-task-projectanalysis/build.gradle b/server/sonar-ce-task-projectanalysis/build.gradle
index 97914e8b00b..5cfdd62a4d6 100644
--- a/server/sonar-ce-task-projectanalysis/build.gradle
+++ b/server/sonar-ce-task-projectanalysis/build.gradle
@@ -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')
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 0aed2b16ddc..b86e55b5b68 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
@@ -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);
}
diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/MeasureToMeasureDto.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/MeasureToMeasureDto.java
index 316920eea2a..d9b6abb9fdf 100644
--- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/MeasureToMeasureDto.java
+++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/MeasureToMeasureDto.java
@@ -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 {
diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/scm/ScmInfoRepositoryImpl.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/scm/ScmInfoRepositoryImpl.java
index 858a0e2f4b8..5de605b9547 100644
--- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/scm/ScmInfoRepositoryImpl.java
+++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/scm/ScmInfoRepositoryImpl.java
@@ -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;