From f306a03090eae3cf6f2a3ca462c7d6fc31980334 Mon Sep 17 00:00:00 2001
From: luoxiangnan <luoxn28@163.com>
Date: Mon, 28 Jan 2019 15:47:39 +0800
Subject: [PATCH] HashMap init optimize when adding new ClusterNode to cluster
 node map (#465)

- reuse old map size to avoid rearrange and rehash the map
---
 .../csp/sentinel/slots/clusterbuilder/ClusterBuilderSlot.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sentinel-core/src/main/java/com/alibaba/csp/sentinel/slots/clusterbuilder/ClusterBuilderSlot.java b/sentinel-core/src/main/java/com/alibaba/csp/sentinel/slots/clusterbuilder/ClusterBuilderSlot.java
index f6faea0f..31ef6b65 100755
--- a/sentinel-core/src/main/java/com/alibaba/csp/sentinel/slots/clusterbuilder/ClusterBuilderSlot.java
+++ b/sentinel-core/src/main/java/com/alibaba/csp/sentinel/slots/clusterbuilder/ClusterBuilderSlot.java
@@ -81,7 +81,7 @@ public class ClusterBuilderSlot extends AbstractLinkedProcessorSlot<DefaultNode>
                 if (clusterNode == null) {
                     // Create the cluster node.
                     clusterNode = Env.nodeBuilder.buildClusterNode();
-                    HashMap<ResourceWrapper, ClusterNode> newMap = new HashMap<ResourceWrapper, ClusterNode>(16);
+                    HashMap<ResourceWrapper, ClusterNode> newMap = new HashMap<ResourceWrapper, ClusterNode>(Math.max(clusterNodeMap.size(), 16));
                     newMap.putAll(clusterNodeMap);
                     newMap.put(node.getId(), clusterNode);