diff --git a/core/util.runtime/src/org/jetbrains/jet/storage/LockBasedStorageManager.java b/core/util.runtime/src/org/jetbrains/jet/storage/LockBasedStorageManager.java index d9d57767964..f1a23afb6d6 100644 --- a/core/util.runtime/src/org/jetbrains/jet/storage/LockBasedStorageManager.java +++ b/core/util.runtime/src/org/jetbrains/jet/storage/LockBasedStorageManager.java @@ -101,7 +101,7 @@ public class LockBasedStorageManager implements StorageManager { @NotNull @Override public MemoizedFunctionToNotNull createMemoizedFunction(@NotNull Function1 compute) { - return createMemoizedFunction(compute, new ConcurrentHashMap()); + return createMemoizedFunction(compute, LockBasedStorageManager.createConcurrentHashMap()); } @NotNull @@ -115,7 +115,13 @@ public class LockBasedStorageManager implements StorageManager { @NotNull @Override public MemoizedFunctionToNullable createMemoizedFunctionWithNullableValues(@NotNull Function1 compute) { - return createMemoizedFunctionWithNullableValues(compute, new ConcurrentHashMap()); + return createMemoizedFunctionWithNullableValues(compute, LockBasedStorageManager.createConcurrentHashMap()); + } + + @NotNull + private static ConcurrentMap createConcurrentHashMap() { + // memory optimization: fewer segments and entries stored + return new ConcurrentHashMap(3, 1, 2); } @NotNull