diff options
author | Mark Schaller <mschaller@google.com> | 2015-11-23 19:26:14 +0000 |
---|---|---|
committer | Philipp Wollermann <philwo@google.com> | 2015-11-24 14:41:10 +0000 |
commit | 5376888c72475a2348e1a1a50ec3dee29174d799 (patch) | |
tree | c13fb7d8516afad07eb295a3ecaa6b8ad58bcf1f /src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java | |
parent | 4f487f4a4d27504965c2ecdc965d17e7ba846db5 (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.java | 8 |
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); |