diff options
author | Mark Schaller <mschaller@google.com> | 2015-11-19 19:17:54 +0000 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2015-11-20 09:17:21 +0000 |
commit | f6db7dc382fb039e25f4e1f6a9c2c69cf5293f15 (patch) | |
tree | 6903febd54237e052e664d19a157fd5668206676 /src/main/java/com/google/devtools/build/skyframe | |
parent | c1b7ca7e4938c125ddd3ac8150044bda169212b8 (diff) |
Presize invalidation sets for better performance
--
MOS_MIGRATED_REVID=108266475
Diffstat (limited to 'src/main/java/com/google/devtools/build/skyframe')
-rw-r--r-- | src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java | 6 |
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, |