aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2018-05-15 09:43:34 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-05-15 09:45:09 -0700
commit905291b7f69f316d4af885d51768dadf7accd9c9 (patch)
tree392f88058eaa1943e95915da7a4b3b4fd80c799f /src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java
parentc1b5c94114789a15632c4b99bc965462956216d7 (diff)
Add option --experimental_discard_actions_after_execution in order to turn it off after a release.
Discarding actions hasn't been shown to have a significant positive effect on heap memory usage, after careful research by mschaller@. It's holding back other projects (threading Fileset metadata through) and adding complexity, so it's time to kill it. Out of an abundance of caution, I'll keep actions in memory via a flag flip, then, if it sticks, I'll change the default, and then I'll unwire everything. PiperOrigin-RevId: 196682768
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java
index e63ae0913d..aaeed3f73f 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java
@@ -612,12 +612,15 @@ public final class SequencedSkyframeExecutor extends SkyframeExecutor {
}
}
+ removeActionsAfterEvaluation.set(
+ !trackIncrementalState
+ && requestOptions != null
+ && requestOptions.discardActionsAfterExecution);
// Now check if it is necessary to wipe the previous state. We do this if either the previous
// or current incrementalStateRetentionStrategy requires the build to have been isolated.
if (oldValueOfTrackIncrementalState != trackIncrementalState) {
logger.info("Set incremental state to " + trackIncrementalState);
evaluatorNeedsReset = true;
- removeActionsAfterEvaluation.set(!trackIncrementalState);
} else if (!trackIncrementalState) {
evaluatorNeedsReset = true;
}