Package org.apache.cassandra.utils
Class ObjectSizes
java.lang.Object
org.apache.cassandra.utils.ObjectSizes
A convenience class for wrapping access to MemoryMeter. Should be used instead of using a
MemoryMeter directly.
MemoryMeter can be used directly for testing as it allow a more fine tuned configuration for comparison.-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic longstatic longmeasureDeep(Object pojo) static longmeasureDeepOmitShared(Object pojo) static longMemory a String consumesstatic longsizeOfArray(byte[] bytes) Memory a byte array consumesstatic longsizeOfArray(int[] ints) Memory an int array consumesstatic longsizeOfArray(long[] longs) Memory a long array consumesstatic longsizeOfArray(Object[] objects) Memory a reference array consumes itself onlystatic longsizeOfReferenceArray(int length) Memory a reference array consumesstatic longsizeOnHeapExcludingDataOf(ByteBuffer buffer) Measures the heap memory used by the specified byte buffer excluding the data.static longsizeOnHeapExcludingDataOf(ByteBuffer[] array) Amount of non-data heap memory consumed by the array of byte buffers.static longsizeOnHeapOf(ByteBuffer buffer) Measures the heap memory used by the specified byte buffer.static longsizeOnHeapOf(ByteBuffer[] array) Amount of heap memory consumed by the array of byte buffers.
-
Field Details
-
IPV6_SOCKET_ADDRESS_SIZE
public static final long IPV6_SOCKET_ADDRESS_SIZE
-
-
Constructor Details
-
ObjectSizes
public ObjectSizes()
-
-
Method Details
-
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
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
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 usingsizeOnHeapOf(ByteBuffer). -
sizeOnHeapExcludingDataOf
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 usingsizeOnHeapExcludingDataOf(ByteBuffer). -
sizeOnHeapOf
Measures the heap memory used by the specified byte buffer. If the buffer is a slab only the data size will be counted but not the internal overhead. A SLAB is assumed to be created by:buffer.duplicate().position(start).limit(end)without the use ofslice().This method makes a certain amount of assumptions:
- That slabs are always created using:
buffer.duplicate().position(start).limit(end)and not through slice - That the input buffers are not read-only buffers
- That the direct buffers that are not slab are not duplicates
- Parameters:
buffer- the buffer to measure- Returns:
- the heap memory used by the specified byte buffer.
- That slabs are always created using:
-
sizeOnHeapExcludingDataOf
Measures the heap memory used by the specified byte buffer excluding the data. If the buffer shallow size will be counted. A SLAB is assumed to be created by:buffer.duplicate().position(start).limit(end)without the use ofslice().This method makes a certain amount of assumptions:
- That slabs are always created using:
buffer.duplicate().position(start).limit(end)and not through slice - That the input buffers are not read-only buffers
- That the direct buffers that are not slab are not duplicates
- Parameters:
buffer- the buffer to measure- Returns:
- the heap memory used by the specified byte buffer excluding the data..
- That slabs are always created using:
-
sizeOf
Memory a String consumes- Parameters:
str- String to calculate memory size of- Returns:
- Total in-memory size of the String
-
measureDeep
- 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
- Parameters:
pojo- the object to measure- Returns:
- the size on the heap of the instance only, excluding any referenced objects
-