diff options
author | 2015-08-28 21:02:32 +0000 | |
---|---|---|
committer | 2015-08-31 19:11:56 +0000 | |
commit | 805e4d9b42dc91af0e9dfaf0b0117a72f4910022 (patch) | |
tree | dcb6c5bae2781de64daff9f8aa41f964c1e47a87 /src | |
parent | 8aca47e4b389e75c8ba3907aedcdc89526d239ab (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')
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); |