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
Accountable s 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)
Accountable
s by summing
up the shallow size of the array and the
memory usage
reported by each
Accountable
.Copyright © 2000-2018 Apache Software Foundation. All Rights Reserved.