aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java
diff options
context:
space:
mode:
authorGravatar Mark Schaller <mschaller@google.com>2015-11-23 19:26:14 +0000
committerGravatar Philipp Wollermann <philwo@google.com>2015-11-24 14:41:10 +0000
commit5376888c72475a2348e1a1a50ec3dee29174d799 (patch)
treec13fb7d8516afad07eb295a3ecaa6b8ad58bcf1f /src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java
parent4f487f4a4d27504965c2ecdc965d17e7ba846db5 (diff)
Presize invalidation pairs collection
Reduces garbage generated during array resizing. -- MOS_MIGRATED_REVID=108528430
Diffstat (limited to 'src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java')
-rw-r--r--src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java b/src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java
index 15f88c589d..3854e94fc3 100644
--- a/src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java
+++ b/src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java
@@ -31,6 +31,7 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
import com.google.devtools.build.lib.util.Pair;
import com.google.devtools.build.skyframe.ThinNodeEntry.MarkedDirtyResult;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -390,15 +391,14 @@ public abstract class InvalidatingNodeVisitor<TGraph extends ThinNodeQueryableGr
final boolean mustExist) {
Preconditions.checkState(invalidationType != InvalidationType.DELETED, keys);
final boolean isChanged = (invalidationType == InvalidationType.CHANGED);
- Builder<Pair<SkyKey, InvalidationType>> invalidationPairsBuilder = ImmutableList.builder();
+ int size = Iterables.size(keys);
+ ArrayList<Pair<SkyKey, InvalidationType>> invalidationPairs = new ArrayList<>(size);
for (SkyKey key : keys) {
Pair<SkyKey, InvalidationType> invalidationPair = Pair.of(key, invalidationType);
if (visited.add(invalidationPair)) {
- invalidationPairsBuilder.add(invalidationPair);
+ invalidationPairs.add(invalidationPair);
}
}
- ImmutableList<Pair<SkyKey, InvalidationType>> invalidationPairs =
- invalidationPairsBuilder.build();
List<SkyKey> keysToGet =
Lists.transform(invalidationPairs, Pair.<SkyKey, InvalidationType>firstFunction());
pendingVisitations.addAll(invalidationPairs);