!7 static int n = 100000; p { for (int tableSize = 0; tableSize <= 10; tableSize ++) { O[] data = arrayOfBlankObjects(tableSize); O[] array = new O[n]; long mem1 = usedMemoryAfterGC(); for i over array: { var map = Collections.synchronizedMap(new LinkedHashMap); 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); print("Object size=" + tableSize + ". Approximate object size: " + objSize + " => " + rounded + " bytes"); } }