|Modifier and Type||Method and Description|
This is a temporary workaround for Java 8 issue https://bugs.openjdk.org/browse/JDK-8186958.
This is a temporary workaround for Java 8 specific performance issue https://bugs.openjdk.org/browse/JDK-8161372.
public static int calculateInitialCapacity(int expectedSize)
expectedSize- the expected size
ConcurrentHashMap.computeIfAbsent(k,v) locks when k is present. Add pre-screen before locking inside computeIfAbsent.
Note: This utility is not for a general purpose usage. Carefully consider the removal operations from the map. If you have many remove operations that are critical, do not use this pre-screening.
map- the ConcurrentHashMap instance
key- key with which the specified value is to be associated
mappingFunction- the function to compute a value