aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java
diff options
context:
space:
mode:
authorGravatar Mark Schaller <mschaller@google.com>2015-11-19 19:17:54 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2015-11-20 09:17:21 +0000
commitf6db7dc382fb039e25f4e1f6a9c2c69cf5293f15 (patch)
tree6903febd54237e052e664d19a157fd5668206676 /src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java
parentc1b7ca7e4938c125ddd3ac8150044bda169212b8 (diff)
Presize invalidation sets for better performance
-- MOS_MIGRATED_REVID=108266475
Diffstat (limited to 'src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java')
-rw-r--r--src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java b/src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java
index afefa1c5b7..15f88c589d 100644
--- a/src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java
+++ b/src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java
@@ -68,6 +68,8 @@ public abstract class InvalidatingNodeVisitor<TGraph extends ThinNodeQueryableGr
// that level of hardware parallelism, since invalidation should be CPU-bound.
// We may consider increasing this in the future.
private static final int DEFAULT_THREAD_COUNT = Runtime.getRuntime().availableProcessors();
+ private static final int EXPECTED_PENDING_SET_SIZE = DEFAULT_THREAD_COUNT * 8;
+ private static final int EXPECTED_VISITED_SET_SIZE = 1024;
private static final boolean MUST_EXIST = true;
@@ -188,7 +190,7 @@ public abstract class InvalidatingNodeVisitor<TGraph extends ThinNodeQueryableGr
private final Set<Pair<SkyKey, InvalidationType>> pendingValues =
Collections.newSetFromMap(
new ConcurrentHashMap<Pair<SkyKey, InvalidationType>, Boolean>(
- DEFAULT_THREAD_COUNT, .75f, DEFAULT_THREAD_COUNT));
+ EXPECTED_PENDING_SET_SIZE, .75f, DEFAULT_THREAD_COUNT));
private final InvalidationType defaultUpdateType;
private InvalidationState(InvalidationType defaultUpdateType) {
@@ -331,7 +333,7 @@ public abstract class InvalidatingNodeVisitor<TGraph extends ThinNodeQueryableGr
private final Set<Pair<SkyKey, InvalidationType>> visited =
Collections.newSetFromMap(
new ConcurrentHashMap<Pair<SkyKey, InvalidationType>, Boolean>(
- DEFAULT_THREAD_COUNT, .75f, DEFAULT_THREAD_COUNT));
+ EXPECTED_VISITED_SET_SIZE, .75f, DEFAULT_THREAD_COUNT));
protected DirtyingNodeVisitor(
ThinNodeQueryableGraph graph,