I have a Map(String, String) and I want to find the memory size of an Entry and the Map in total. I read somewhere that Instrumentation might be useful (Instrumentation). Do
A blank instance of java.util.AbstractMap.SimpleEntry should be 24 bytes for 64-bit JVM and 12 bytes for 32-bit JVM. Here is a technique by @PeterLawrey I found useful, based on MemoryUsageExamplesTest:
System.out.printf("The average memory used by simple entry is %.1f bytes%n", new SizeofUtil() {
@Override
protected int create() {
Map.Entry e = new AbstractMap.SimpleEntry(null, null);
return 1;
}
}.averageBytes());