public final class RamUsageEstimator extends Object
This class uses assumptions that were discovered for the Hotspot virtual machine. If you use a non-OpenJDK/Oracle-based JVM, the measurements may be slightly wrong.
shallowSizeOf(Object),
shallowSizeOfInstance(Class)| Modifier and Type | Field and Description |
|---|---|
static boolean |
COMPRESSED_REFS_ENABLED
True, iff compressed references (oops) are enabled by this JVM
|
static int |
NUM_BYTES_ARRAY_HEADER
Number of bytes to represent an array header (no content, but with alignments).
|
static int |
NUM_BYTES_BOOLEAN
Deprecated.
use
1 instead. |
static int |
NUM_BYTES_BYTE
Deprecated.
use
1 instead. |
static int |
NUM_BYTES_CHAR
Deprecated.
use
Character.BYTES instead. |
static int |
NUM_BYTES_DOUBLE
Deprecated.
use
Double.BYTES instead. |
static int |
NUM_BYTES_FLOAT
Deprecated.
use
Float.BYTES instead. |
static int |
NUM_BYTES_INT
Deprecated.
use
Integer.BYTES instead. |
static int |
NUM_BYTES_LONG
Deprecated.
use
Long.BYTES instead. |
static int |
NUM_BYTES_OBJECT_ALIGNMENT
A constant specifying the object alignment boundary inside the JVM.
|
static int |
NUM_BYTES_OBJECT_HEADER
Number of bytes to represent an object header (no fields, no alignments).
|
static int |
NUM_BYTES_OBJECT_REF
Number of bytes this JVM uses to represent an object reference.
|
static int |
NUM_BYTES_SHORT
Deprecated.
use
Short.BYTES instead. |
static long |
ONE_GB
One gigabyte bytes.
|
static long |
ONE_KB
One kilobyte bytes.
|
static long |
ONE_MB
One megabyte bytes.
|
| Modifier and Type | Method and Description |
|---|---|
static long |
alignObjectSize(long size)
Aligns an object size to be the next multiple of
NUM_BYTES_OBJECT_ALIGNMENT. |
static String |
humanReadableUnits(long bytes)
Returns
size in human-readable units (GB, MB, KB or bytes). |
static String |
humanReadableUnits(long bytes,
DecimalFormat df)
Returns
size in human-readable units (GB, MB, KB or bytes). |
static long |
shallowSizeOf(Object obj)
Estimates a "shallow" memory usage of the given object.
|
static long |
shallowSizeOf(Object[] arr)
Returns the shallow size in bytes of the Object[] object.
|
static long |
shallowSizeOfInstance(Class<?> clazz)
Returns the shallow instance size in bytes an instance of the given class would occupy.
|
static long |
sizeOf(Accountable[] accountables)
Return the size of the provided array of
Accountables by summing
up the shallow size of the array and the
memory usage reported by each
Accountable. |
static long |
sizeOf(boolean[] arr)
Returns the size in bytes of the boolean[] object.
|
static long |
sizeOf(byte[] arr)
Returns the size in bytes of the byte[] object.
|
static long |
sizeOf(char[] arr)
Returns the size in bytes of the char[] object.
|
static long |
sizeOf(double[] arr)
Returns the size in bytes of the double[] object.
|
static long |
sizeOf(float[] arr)
Returns the size in bytes of the float[] object.
|
static long |
sizeOf(int[] arr)
Returns the size in bytes of the int[] object.
|
static long |
sizeOf(Long value)
Return the size of the provided
Long object, returning 0 if it is
cached by the JVM and its shallow size otherwise. |
static long |
sizeOf(long[] arr)
Returns the size in bytes of the long[] object.
|
static long |
sizeOf(short[] arr)
Returns the size in bytes of the short[] object.
|
public static final long ONE_KB
public static final long ONE_MB
public static final long ONE_GB
@Deprecated public static final int NUM_BYTES_BOOLEAN
1 instead.boolean in binary form@Deprecated public static final int NUM_BYTES_BYTE
1 instead.byte in binary form@Deprecated public static final int NUM_BYTES_CHAR
Character.BYTES instead.char in binary form@Deprecated public static final int NUM_BYTES_SHORT
Short.BYTES instead.short in binary form@Deprecated public static final int NUM_BYTES_INT
Integer.BYTES instead.int in binary form@Deprecated public static final int NUM_BYTES_FLOAT
Float.BYTES instead.float in binary form@Deprecated public static final int NUM_BYTES_LONG
Long.BYTES instead.long in binary form@Deprecated public static final int NUM_BYTES_DOUBLE
Double.BYTES instead.double in binary formpublic static final boolean COMPRESSED_REFS_ENABLED
public static final int NUM_BYTES_OBJECT_REF
public static final int NUM_BYTES_OBJECT_HEADER
public static final int NUM_BYTES_ARRAY_HEADER
public static final int NUM_BYTES_OBJECT_ALIGNMENT
public static long alignObjectSize(long size)
NUM_BYTES_OBJECT_ALIGNMENT.public static long sizeOf(Long value)
Long object, returning 0 if it is
cached by the JVM and its shallow size otherwise.public static long sizeOf(byte[] arr)
public static long sizeOf(boolean[] arr)
public static long sizeOf(char[] arr)
public static long sizeOf(short[] arr)
public static long sizeOf(int[] arr)
public static long sizeOf(float[] arr)
public static long sizeOf(long[] arr)
public static long sizeOf(double[] arr)
public static long shallowSizeOf(Object[] arr)
public static long shallowSizeOf(Object obj)
public static long shallowSizeOfInstance(Class<?> clazz)
IllegalArgumentException - if clazz is an array class.shallowSizeOf(Object)public static String humanReadableUnits(long bytes)
size in human-readable units (GB, MB, KB or bytes).public static String humanReadableUnits(long bytes, DecimalFormat df)
size in human-readable units (GB, MB, KB or bytes).public static long sizeOf(Accountable[] accountables)
Accountables by summing
up the shallow size of the array and the
memory usage reported by each
Accountable.Copyright © 2000-2019 Apache Software Foundation. All Rights Reserved.