[ https://issues.apache.org/jira/browse/HBASE-3657?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13008015#comment-13008015 ]
Benoit Sigoure commented on HBASE-3657: --------------------------------------- {code} assignUserRegions(allRegions.keySet().toArray(new HRegionInfo[0]), servers); {code} Instead of creating a useless 0-length array that will be discarded almost immediately, can you please do this instead: {code} assignUserRegions(allRegions.keySet().toArray(new HRegionInfo[allRegions.size()]), servers); {code} Thanks. > reduce copying of HRegionInfo's > ------------------------------- > > Key: HBASE-3657 > URL: https://issues.apache.org/jira/browse/HBASE-3657 > Project: HBase > Issue Type: Improvement > Reporter: Ted Yu > Assignee: Ted Yu > Attachments: hbase-3657.txt > > > I looked at calls to this method in AssignmentManager: > public void assignUserRegions(List<HRegionInfo> regions, List<HServerInfo> > servers) > Here is one from AssignmentManager: > assignUserRegions(Arrays.asList(regions.keySet().toArray(new > HRegionInfo[0])), servers); > Here is another from Master: > this.assignmentManager.assignUserRegions(Arrays.asList(newRegions), > servers); > I propose changing the first parameter to HRegionInfo[] so that extra copying > can be avoided - considering that the number of regions in production is high. > A bigger task is to reduce memory footprint of AssignmentManager. > It would eliminate this copy: > 165 public static <T> List<T> asList(T... array) { > 166 return new ArrayList<T>(array); > 167 } > 168 -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira