diff options
author | 2018-07-30 10:56:57 -0700 | |
---|---|---|
committer | 2018-07-30 10:58:20 -0700 | |
commit | ccb745699953365425c1931c05413d9911e051a8 (patch) | |
tree | b03d622589e005c48a99bd779de32d35f3160237 /src/main/java/com/google/devtools/build/lib/exec | |
parent | 7dbc5e03f1ced0e3a67e42e0f182579865d26af7 (diff) |
Improve artifact->owner label accounting in two ways. First, don't do the full mapping unless requested. This gets rid of any performance issue for the vast majority of builds. Second, if requested, use a custom data structure so that we don't have to create a full HashSet for artifacts whose only owning labels are their own owner labels.
PiperOrigin-RevId: 206610370
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/exec')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/exec/ActionContextProvider.java | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/exec/ActionContextProvider.java b/src/main/java/com/google/devtools/build/lib/exec/ActionContextProvider.java index 909f36a146..d4730a8aec 100644 --- a/src/main/java/com/google/devtools/build/lib/exec/ActionContextProvider.java +++ b/src/main/java/com/google/devtools/build/lib/exec/ActionContextProvider.java @@ -13,13 +13,12 @@ // limitations under the License. package com.google.devtools.build.lib.exec; -import com.google.common.collect.SetMultimap; +import com.google.common.base.Supplier; import com.google.devtools.build.lib.actions.ActionContext; import com.google.devtools.build.lib.actions.ActionGraph; -import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.actions.ExecutorInitException; import com.google.devtools.build.lib.actions.MetadataProvider; -import com.google.devtools.build.lib.cmdline.Label; +import com.google.devtools.build.lib.analysis.ArtifactsToOwnerLabels; /** * An object that provides execution strategies to {@link BlazeExecutor}. @@ -52,7 +51,7 @@ public abstract class ActionContextProvider { /** Called when the execution phase is started. */ public void executionPhaseStarting( - ActionGraph actionGraph, SetMultimap<Artifact, Label> topLevelArtifactsToOwnerLabels) + ActionGraph actionGraph, Supplier<ArtifactsToOwnerLabels> topLevelArtifactsToOwnerLabels) throws ExecutorInitException, InterruptedException {} /** |