From 87d372aad54d494806f9e952229cfff0f8a3e624 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Sat, 1 Nov 2014 13:40:13 +0200 Subject: [PATCH] Memory optimization: Fewer ConcurrentHashMap.Segment instances --- .../jetbrains/jet/storage/LockBasedStorageManager.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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