aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Michajlo Matijkiw <michajlo@google.com>2015-08-28 21:02:32 +0000
committerGravatar Kristina Chodorow <kchodorow@google.com>2015-08-31 19:11:56 +0000
commit805e4d9b42dc91af0e9dfaf0b0117a72f4910022 (patch)
treedcb6c5bae2781de64daff9f8aa41f964c1e47a87 /src
parent8aca47e4b389e75c8ba3907aedcdc89526d239ab (diff)
Presize some collections at the core of ParallelEvaluator
We know what size these will be ahead of time, and they can get large, presize since there's no reason not to. Also change arg type for related methods to be Set since it's all we deal in and we know it will have better performance on size than generic Iterable. -- MOS_MIGRATED_REVID=101806154
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/skyframe/AbstractSkyFunctionEnvironment.java2
-rw-r--r--src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java4
-rw-r--r--src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java6
3 files changed, 6 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/skyframe/AbstractSkyFunctionEnvironment.java b/src/main/java/com/google/devtools/build/skyframe/AbstractSkyFunctionEnvironment.java
index b8b5a76762..a847f0f5cc 100644
--- a/src/main/java/com/google/devtools/build/skyframe/AbstractSkyFunctionEnvironment.java
+++ b/src/main/java/com/google/devtools/build/skyframe/AbstractSkyFunctionEnvironment.java
@@ -111,7 +111,7 @@ public abstract class AbstractSkyFunctionEnvironment implements SkyFunction.Envi
/** Implementations should set {@link #valuesMissing} as necessary. */
protected abstract Map<SkyKey, ValueOrUntypedException> getValueOrUntypedExceptions(
- Iterable<SkyKey> depKeys);
+ Set<SkyKey> depKeys);
@Override
@Nullable
diff --git a/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java b/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java
index a488d387e7..3c39e78d21 100644
--- a/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java
+++ b/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java
@@ -295,9 +295,9 @@ public final class ParallelEvaluator implements Evaluator {
@Override
protected ImmutableMap<SkyKey, ValueOrUntypedException> getValueOrUntypedExceptions(
- Iterable<SkyKey> depKeys) {
+ Set<SkyKey> depKeys) {
checkActive();
- Set<SkyKey> keys = new LinkedHashSet<>();
+ Set<SkyKey> keys = Sets.newLinkedHashSetWithExpectedSize(depKeys.size());
for (SkyKey depKey : depKeys) {
// Canonicalize SkyKeys to save memory.
keys.add(KEY_CANONICALIZER.intern(depKey));
diff --git a/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java b/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java
index 88c72efe3f..41ab244cf9 100644
--- a/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java
+++ b/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java
@@ -22,6 +22,7 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
import com.google.devtools.build.lib.actions.AbstractAction;
import com.google.devtools.build.lib.actions.AbstractActionOwner;
import com.google.devtools.build.lib.actions.Action;
@@ -59,7 +60,6 @@ import com.google.devtools.build.skyframe.ValueOrUntypedException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
@@ -121,9 +121,9 @@ public final class ActionsTestUtil {
@Override
protected Map<SkyKey, ValueOrUntypedException> getValueOrUntypedExceptions(
- Iterable<SkyKey> depKeys) {
+ Set<SkyKey> depKeys) {
EvaluationResult<SkyValue> evaluationResult;
- Map<SkyKey, ValueOrUntypedException> result = new HashMap<>();
+ Map<SkyKey, ValueOrUntypedException> result = Maps.newHashMapWithExpectedSize(depKeys.size());
try {
evaluationResult = driver.evaluate(depKeys, /*keepGoing=*/false,
ResourceUsage.getAvailableProcessors(), eventHandler);