Serialized object size vs in memory object size in Java

前端 未结 2 760
忘掉有多难
忘掉有多难 2021-01-11 18:13

Is there a way of estimating (roughly) in memory object size from Serialized object size in Java

相关标签:
2条回答
  • 2021-01-11 18:55

    The size in memory will be usually between half and double the serializable size. The most extreme example might be the Byte which is more than 80 bytes Serialized can be 16 bytes in memory.

    You can use a profiler to tell you how much memory an object uses. Another way is to use a tool based on Instrumentation.getObjectSize(object)

    You might find this interesting Getting the size of an Object

    0 讨论(0)
  • 2021-01-11 19:18

    A very nice Tool for this challenge: https://github.com/jbellis/jamm

    From the readme.txt:

    MemoryMeter is as accurate as java.lang.instrument.Instrumentation.getObjectSize, which only claims to provide "approximate" results, but in practice seems to work as expected.

    MemoryMeter uses reflection to crawl the object graph for measureDeep. Reflection is slow: measuring a one-million object Cassandra Memtable (that is, 1 million children from MemoryMeter.countChildren) took about 5 seconds wall clock time.

    0 讨论(0)
提交回复
热议问题