diff options
author | janakr <janakr@google.com> | 2018-05-15 09:43:34 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-05-15 09:45:09 -0700 |
commit | 905291b7f69f316d4af885d51768dadf7accd9c9 (patch) | |
tree | 392f88058eaa1943e95915da7a4b3b4fd80c799f /src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java | |
parent | c1b5c94114789a15632c4b99bc965462956216d7 (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.java | 5 |
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; } |