Class ObjectSizes


  • public class ObjectSizes
    extends java.lang.Object
    A convenience class for wrapping access to MemoryMeter
    • Constructor Summary

      Constructors 
      Constructor Description
      ObjectSizes()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static long measure​(java.lang.Object pojo)  
      static long measureDeep​(java.lang.Object pojo)  
      static long sizeOf​(java.lang.String str)
      Memory a String consumes
      static long sizeOfArray​(byte[] bytes)
      Memory a byte array consumes
      static long sizeOfArray​(int[] ints)
      Memory an int array consumes
      static long sizeOfArray​(long[] longs)
      Memory a long array consumes
      static long sizeOfArray​(java.lang.Object[] objects)
      Memory a reference array consumes itself only
      static long sizeOfReferenceArray​(int length)
      Memory a reference array consumes
      static long sizeOnHeapExcludingData​(java.nio.ByteBuffer buffer)  
      static long sizeOnHeapExcludingData​(java.nio.ByteBuffer[] array)
      Amount of non-data heap memory consumed by the array of byte buffers.
      static long sizeOnHeapOf​(java.nio.ByteBuffer buffer)  
      static long sizeOnHeapOf​(java.nio.ByteBuffer[] array)
      Amount of heap memory consumed by the array of byte buffers.
      • Methods inherited from class java.lang.Object

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

      • ObjectSizes

        public ObjectSizes()
    • Method Detail

      • sizeOfArray

        public static long sizeOfArray​(byte[] bytes)
        Memory a byte array consumes
        Parameters:
        bytes - byte array to get memory size
        Returns:
        heap-size of the array
      • sizeOfArray

        public static long sizeOfArray​(long[] longs)
        Memory a long array consumes
        Parameters:
        longs - byte array to get memory size
        Returns:
        heap-size of the array
      • sizeOfArray

        public static long sizeOfArray​(int[] ints)
        Memory an int array consumes
        Parameters:
        ints - byte array to get memory size
        Returns:
        heap-size of the array
      • sizeOfReferenceArray

        public static long sizeOfReferenceArray​(int length)
        Memory a reference array consumes
        Parameters:
        length - the length of the reference array
        Returns:
        heap-size of the array
      • sizeOfArray

        public static long sizeOfArray​(java.lang.Object[] objects)
        Memory a reference array consumes itself only
        Parameters:
        objects - the array to size
        Returns:
        heap-size of the array (excluding memory retained by referenced objects)
      • sizeOnHeapOf

        public static long sizeOnHeapOf​(java.nio.ByteBuffer[] array)
        Amount of heap memory consumed by the array of byte buffers. It sums memory consumed by the array itself and for each included byte buffer using sizeOnHeapOf(ByteBuffer).
      • sizeOnHeapExcludingData

        public static long sizeOnHeapExcludingData​(java.nio.ByteBuffer[] array)
        Amount of non-data heap memory consumed by the array of byte buffers. It sums memory consumed by the array itself and for each included byte buffer using sizeOnHeapExcludingData(ByteBuffer).
      • sizeOnHeapOf

        public static long sizeOnHeapOf​(java.nio.ByteBuffer buffer)
        Returns:
        heap memory consumed by the byte buffer. If it is a slice, it counts the data size, but it does not include the internal array overhead.
      • sizeOnHeapExcludingData

        public static long sizeOnHeapExcludingData​(java.nio.ByteBuffer buffer)
        Returns:
        non-data heap memory consumed by the byte buffer. If it is a slice, it does not include the internal array overhead.
      • sizeOf

        public static long sizeOf​(java.lang.String str)
        Memory a String consumes
        Parameters:
        str - String to calculate memory size of
        Returns:
        Total in-memory size of the String
      • measureDeep

        public static long measureDeep​(java.lang.Object pojo)
        Parameters:
        pojo - the object to measure
        Returns:
        the size on the heap of the instance and all retained heap referenced by it, excluding portions of ByteBuffer that are not directly referenced by it but including any other referenced that may also be retained by other objects.
      • measure

        public static long measure​(java.lang.Object pojo)
        Parameters:
        pojo - the object to measure
        Returns:
        the size on the heap of the instance only, excluding any referenced objects