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
Use ObjectOutputStream to write the object to a ByteArrayOutputstream and check the length of the resultant byte array.
Obviously your Map.Entry will need to implement Serializable.
public int getSizeInBytes(Serializable someObject) {
ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
ObjectOutputStream objectOut = new ObjectOutputStream(byteOut);
objectOut.writeObject(someObject);
objectOut.flush();
return byteOut.toByteArray().length;
}
public int getSizeBits(Serializable someObject) {
return getSizeInBytes(someObject) * 8;
}