From a6ae16c84d669d41e2163db8c0f6542a8103d4ee Mon Sep 17 00:00:00 2001 From: Julia Beliaeva Date: Thu, 24 Nov 2016 06:09:23 +0300 Subject: [PATCH] [vcs-log] minor: move constant to the place it is actually used, add comment --- .../intellij/vcs/log/data/index/VcsLogPersistentIndex.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/data/index/VcsLogPersistentIndex.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/data/index/VcsLogPersistentIndex.java index 1b36239598ba..87ce6b3e4e63 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/data/index/VcsLogPersistentIndex.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/data/index/VcsLogPersistentIndex.java @@ -62,7 +62,6 @@ import static com.intellij.vcs.log.util.PersistentUtil.*; public class VcsLogPersistentIndex implements VcsLogIndex, Disposable { private static final Logger LOG = Logger.getInstance(VcsLogPersistentIndex.class); - private static final int BATCH_SIZE = 1000; private static final int VERSION = 0; @NotNull private final Project myProject; @@ -459,6 +458,7 @@ public class VcsLogPersistentIndex implements VcsLogIndex, Disposable { private class IndexingRequest { private static final int MAGIC_NUMBER = 150000; + private static final int BATCH_SIZE = 1000; private final Map myCommits; private final boolean myFull; @@ -518,6 +518,9 @@ public class VcsLogPersistentIndex implements VcsLogIndex, Disposable { private void indexOneByOne(@NotNull VirtualFile root, @NotNull CommitsCounter counter, @NotNull IntStream commits) { + // We pass hashes to VcsLogProvider#readFullDetails in batches + // in order to avoid allocating too much memory for these hashes + // (we have up to 150K commits here that will occupy up to 18Mb as Strings). TroveUtil.processBatches(commits, BATCH_SIZE, batch -> { counter.indicator.checkCanceled();