diff options
author | 2018-02-09 08:37:56 -0800 | |
---|---|---|
committer | 2018-02-09 08:39:32 -0800 | |
commit | 8ac761a63cf9cf6851138e689c0666063ad9b219 (patch) | |
tree | 82be9886f4bcee8af9b10692309d9bc92472895e /src/main/java/com/google/devtools/build/lib/graph | |
parent | 16614bb50672da08cb9222f6470fb75848838208 (diff) |
Switch a few maps/sets to CompactHash(Map|Set)
RELNOTES: None.
PiperOrigin-RevId: 185145663
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/graph')
3 files changed, 7 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/graph/BUILD b/src/main/java/com/google/devtools/build/lib/graph/BUILD index b942abbfcd..59b9b5e611 100644 --- a/src/main/java/com/google/devtools/build/lib/graph/BUILD +++ b/src/main/java/com/google/devtools/build/lib/graph/BUILD @@ -13,6 +13,7 @@ java_library( name = "graph", srcs = glob(["*.java"]), deps = [ + "//src/main/java/com/google/devtools/build/lib/collect/compacthashset", "//third_party:guava", "//third_party:jsr305", ], diff --git a/src/main/java/com/google/devtools/build/lib/graph/DFS.java b/src/main/java/com/google/devtools/build/lib/graph/DFS.java index 1428060a6c..ac9dec223c 100644 --- a/src/main/java/com/google/devtools/build/lib/graph/DFS.java +++ b/src/main/java/com/google/devtools/build/lib/graph/DFS.java @@ -17,11 +17,11 @@ package com.google.devtools.build.lib.graph; import static java.util.Comparator.comparing; import static java.util.stream.Collectors.toCollection; +import com.google.devtools.build.lib.collect.compacthashset.CompactHashSet; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Comparator; -import java.util.HashSet; import java.util.List; import java.util.Set; @@ -53,7 +53,7 @@ public class DFS<T> { private final boolean transpose; - private final Set<Node<T>> marked = new HashSet<>(); + private final Set<Node<T>> marked = CompactHashSet.create(); /** * Constructs a DFS instance for searching over the enclosing Digraph diff --git a/src/main/java/com/google/devtools/build/lib/graph/Node.java b/src/main/java/com/google/devtools/build/lib/graph/Node.java index 5079ed4ce4..584b35b60d 100644 --- a/src/main/java/com/google/devtools/build/lib/graph/Node.java +++ b/src/main/java/com/google/devtools/build/lib/graph/Node.java @@ -13,7 +13,7 @@ // limitations under the License. package com.google.devtools.build.lib.graph; -import com.google.common.collect.Sets; +import com.google.devtools.build.lib.collect.compacthashset.CompactHashSet; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -46,7 +46,7 @@ public final class Node<T> { // - null for size = 0. // - Collections$SingletonList for size = 1. // - ArrayList(6) for size = [2..6]. - // - HashSet(12) for size > 6. + // - CompactHashSet(12) for size > 6. // These numbers were chosen based on profiling. private final T label; @@ -164,8 +164,8 @@ public final class Node<T> { set.add(value); return true; } else if (previousSize == ARRAYLIST_THRESHOLD) { - // ArrayList -> HashSet - Collection<Node<T>> newSet = Sets.newHashSetWithExpectedSize(INITIAL_HASHSET_CAPACITY); + // ArrayList -> CompactHashSet + Collection<Node<T>> newSet = CompactHashSet.createWithExpectedSize(INITIAL_HASHSET_CAPACITY); newSet.addAll(set); newSet.add(value); return updateField(predecessorSet, newSet); |