Class ReflectionSizeOf


  • public class ReflectionSizeOf
    extends SizeOf
    SizeOf that uses reflection to measure on heap size of object graphs Inspired by Dr. Heinz Kabutz's Java Specialist Newsletter Issue #78
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static org.slf4j.Logger LOGGER  
    • Constructor Summary

      Constructors 
      Constructor Description
      ReflectionSizeOf()
      Builds a new SizeOf that will not filter fields and will cache reflected fields
      ReflectionSizeOf​(SizeOfFilter fieldFilter)
      Builds a new SizeOf that will filter fields and will cache reflected fields
      ReflectionSizeOf​(SizeOfFilter fieldFilter, boolean caching, boolean bypassFlyweight)
      Builds a new SizeOf that will filter fields
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private long guessArraySize​(java.lang.Object obj)  
      long sizeOf​(java.lang.Object obj)
      Calculates the size in memory (heap) of the instance passed in, not navigating the down graph
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • LOGGER

        private static final org.slf4j.Logger LOGGER
    • Constructor Detail

      • ReflectionSizeOf

        public ReflectionSizeOf​(SizeOfFilter fieldFilter,
                                boolean caching,
                                boolean bypassFlyweight)
        Builds a new SizeOf that will filter fields
        Parameters:
        fieldFilter - The filter to apply
        caching - Whether to cache reflected fields
        bypassFlyweight - whether "Flyweight Objects" are to be ignored
        See Also:
        SizeOfFilter
    • Method Detail

      • sizeOf

        public long sizeOf​(java.lang.Object obj)
        Calculates the size in memory (heap) of the instance passed in, not navigating the down graph
        Specified by:
        sizeOf in class SizeOf
        Parameters:
        obj - the object to measure the size of
        Returns:
        the object size in memory in bytes
      • guessArraySize

        private long guessArraySize​(java.lang.Object obj)