Use ConcurrentHashMap instead of Cache where we aren't using any of the
LoadingCache's capabilities. According to profiles, using ConcurrentHashMap is
about 3x more efficient.
RELNOTES: None
PiperOrigin-RevId: 208874176
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/GlobFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/GlobFunction.java
index 9d2c94a..5820ac8 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/GlobFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/GlobFunction.java
@@ -14,8 +14,6 @@
package com.google.devtools.build.lib.skyframe;
import com.google.common.base.Preconditions;
-import com.google.common.cache.Cache;
-import com.google.common.cache.CacheBuilder;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.google.devtools.build.lib.actions.FileValue;
@@ -33,6 +31,7 @@
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.regex.Pattern;
import javax.annotation.Nullable;
@@ -43,8 +42,7 @@
*/
public final class GlobFunction implements SkyFunction {
- private final Cache<String, Pattern> regexPatternCache =
- CacheBuilder.newBuilder().maximumSize(10000).concurrencyLevel(4).build();
+ private final ConcurrentHashMap<String, Pattern> regexPatternCache = new ConcurrentHashMap<>();
private final boolean alwaysUseDirListing;