From 6ae05b419922193c4c253e51c9a5e483e4f947fa Mon Sep 17 00:00:00 2001 From: janakr Date: Mon, 13 Aug 2018 16:13:42 -0700 Subject: Order Skyframe evaluations in a priority queue, with all children of a given node having the same priority, later enqueueings having higher priority, re-enqueued nodes having highest priority, and new root nodes having lowest priority. Experimentally, this can save significant RAM (1.4G in some builds!) while not affecting speed. Also do a semi-drive-by deleting ExecutorFactory parameter to AbstractQueueVisitor, since it was always AbstractQueueVisitor.EXECUTOR_FACTORY. PiperOrigin-RevId: 208560889 --- .../google/devtools/build/skyframe/EagerInvalidatorTest.java | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) (limited to 'src/test/java/com/google/devtools/build/skyframe/EagerInvalidatorTest.java') diff --git a/src/test/java/com/google/devtools/build/skyframe/EagerInvalidatorTest.java b/src/test/java/com/google/devtools/build/skyframe/EagerInvalidatorTest.java index 223b14b37c..6239319247 100644 --- a/src/test/java/com/google/devtools/build/skyframe/EagerInvalidatorTest.java +++ b/src/test/java/com/google/devtools/build/skyframe/EagerInvalidatorTest.java @@ -24,7 +24,6 @@ import com.google.common.collect.Iterables; import com.google.common.collect.Sets; import com.google.common.eventbus.EventBus; import com.google.common.testing.GcFinalization; -import com.google.devtools.build.lib.concurrent.AbstractQueueVisitor; import com.google.devtools.build.lib.events.Reporter; import com.google.devtools.build.lib.testutil.TestUtils; import com.google.devtools.build.lib.util.Pair; @@ -562,8 +561,7 @@ public class EagerInvalidatorTest { ImmutableList diff = ImmutableList.of(GraphTester.nonHermeticKey("a")); InvalidationState state1 = new DirtyingInvalidationState(); Preconditions.checkNotNull( - EagerInvalidator.createInvalidatingVisitorIfNeeded( - graph, diff, receiver, state1, AbstractQueueVisitor.EXECUTOR_FACTORY)) + EagerInvalidator.createInvalidatingVisitorIfNeeded(graph, diff, receiver, state1)) .run(); assertThat(receiver.getUnenqueuedDirtyKeys()).containsExactly(diff.get(0), skyKey("ab")); @@ -585,12 +583,7 @@ public class EagerInvalidatorTest { throws InterruptedException { Iterable diff = ImmutableList.copyOf(keys); DirtyingNodeVisitor dirtyingNodeVisitor = - EagerInvalidator.createInvalidatingVisitorIfNeeded( - graph, - diff, - progressReceiver, - state, - AbstractQueueVisitor.EXECUTOR_FACTORY); + EagerInvalidator.createInvalidatingVisitorIfNeeded(graph, diff, progressReceiver, state); if (dirtyingNodeVisitor != null) { visitor.set(dirtyingNodeVisitor); dirtyingNodeVisitor.run(); -- cgit v1.2.3