WICKET-5527 Inefficient DefaultPageStore.SerializedPagesCache Use ConcurrentHashMap for the sessions. There is no need to track their age so no need to use ConcurrentSkipListMap.
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/961e46ae Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/961e46ae Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/961e46ae Branch: refs/heads/master Commit: 961e46ae67ecda7c11fb1c58c2cfa98b06f98693 Parents: 2380d65 Author: Martin Tzvetanov Grigorov <mgrigo...@apache.org> Authored: Wed Mar 12 11:14:55 2014 +0200 Committer: Martin Tzvetanov Grigorov <mgrigo...@apache.org> Committed: Wed Mar 12 11:14:55 2014 +0200 ---------------------------------------------------------------------- .../java/org/apache/wicket/pageStore/PerSessionPageStore.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/961e46ae/wicket-core/src/main/java/org/apache/wicket/pageStore/PerSessionPageStore.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/pageStore/PerSessionPageStore.java b/wicket-core/src/main/java/org/apache/wicket/pageStore/PerSessionPageStore.java index 632cea9..fdfe92d 100644 --- a/wicket-core/src/main/java/org/apache/wicket/pageStore/PerSessionPageStore.java +++ b/wicket-core/src/main/java/org/apache/wicket/pageStore/PerSessionPageStore.java @@ -20,6 +20,7 @@ import java.lang.ref.SoftReference; import java.util.Comparator; import java.util.Iterator; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.ConcurrentSkipListMap; @@ -144,7 +145,7 @@ public class PerSessionPageStore extends AbstractCachingPageStore<IManageablePag private final int maxEntriesPerSession; - private final ConcurrentSkipListMap<String, SoftReference<ConcurrentSkipListMap<PageValue, IManageablePage>>> cache; + private final ConcurrentMap<String, SoftReference<ConcurrentSkipListMap<PageValue, IManageablePage>>> cache; /** * Constructor. @@ -155,7 +156,7 @@ public class PerSessionPageStore extends AbstractCachingPageStore<IManageablePag public PagesCache(final int maxEntriesPerSession) { this.maxEntriesPerSession = maxEntriesPerSession; - cache = new ConcurrentSkipListMap<>(); + cache = new ConcurrentHashMap<>(); } /**