import java.util.concurrent.ConcurrentHashMap def a = new ConcurrentHashMap(); for (int i = 0; i < 1000000; i++) { a.put(UUID.randomUUID().toString(), UUID.randomUUID().toString()) } println ((Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / (1024 * 1024)) def t = new Thread(new Runnable() { @Override void run() { def rs = a.keySet().collect{ def s = System.currentTimeMillis() a.get(it) def e = System.currentTimeMillis() e - s } println "finish ${rs.size()}" println "${rs.min()} - ${rs.max()} - ${rs.sort().get((int)Math.floor(rs.size() / 99))}" } }) t.start() for (int i = 0; i < 10000; i++) { print "-" a.put(UUID.randomUUID().toString(), UUID.randomUUID().toString()) } println ((Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / (1024 * 1024))