!7 static int n = 20000; p { for (int tableSize = 0; tableSize < 200; tableSize += 20) { new L data; for i to tableSize: data.add(i); O[] array = new O[n]; long mem1 = usedMemoryAfterGC(); for i over array: { new TreeMap map; for (O x : data) map.put(x, x); array[i] = map; } long mem2 = usedMemoryAfterGC(); double objSize = (mem2-mem1)/(double) l(array); int rounded = iround(objSize); long f = guessTreeMapSize(tableSize); bool ok = rounded == f; print((ok ? "OK " : "") + "Hash table size=" + tableSize + ". Approximate object size: " + objSize + " => " + rounded + " bytes. Formula: " + f); } }