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.
| 限定符和类型 | 字段和说明 |
|---|---|
static boolean |
COMPRESSED_REFS_ENABLED
True, iff compressed references (oops) are enabled by this JVM
|
static long |
HASHTABLE_RAM_BYTES_PER_ENTRY
Approximate memory usage that we assign to a Hashtable / HashMap entry.
|
static long |
LINKED_HASHTABLE_RAM_BYTES_PER_ENTRY
Approximate memory usage that we assign to a LinkedHashMap entry.
|
static int |
MAX_DEPTH
Recurse only into immediate descendants.
|
static int |
NUM_BYTES_ARRAY_HEADER
Number of bytes to represent an array header (no content, but with alignments).
|
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 long |
ONE_GB
One gigabyte bytes.
|
static long |
ONE_KB
One kilobyte bytes.
|
static long |
ONE_MB
One megabyte bytes.
|
static Map<Class<?>,Integer> |
primitiveSizes
Sizes of primitive classes.
|
static int |
QUERY_DEFAULT_RAM_BYTES_USED
Approximate memory usage that we assign to all unknown queries -
this maps roughly to a BooleanQuery with a couple term clauses.
|
static int |
UNKNOWN_DEFAULT_RAM_BYTES_USED
Approximate memory usage that we assign to all unknown objects -
this maps roughly to a few primitive fields and a couple short String-s.
|
| 限定符和类型 | 方法和说明 |
|---|---|
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(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.
|
static long |
sizeOf(String s)
Returns the size in bytes of the String object.
|
static long |
sizeOf(String[] arr)
Returns the size in bytes of the String[] object.
|
static long |
sizeOfCollection(Collection<?> collection)
Returns the size in bytes of a Collection object, including sizes of its values, supplying
UNKNOWN_DEFAULT_RAM_BYTES_USED when object type is not well known. |
static long |
sizeOfCollection(Collection<?> collection,
long defSize)
Returns the size in bytes of a Collection object, including sizes of its values, supplying
default object size when object type is not well known.
|
static long |
sizeOfMap(Map<?,?> map)
Returns the size in bytes of a Map object, including sizes of its keys and values, supplying
UNKNOWN_DEFAULT_RAM_BYTES_USED when object type is not well known. |
static long |
sizeOfMap(Map<?,?> map,
long defSize)
Returns the size in bytes of a Map object, including sizes of its keys and values, supplying
default object size when object type is not well known.
|
static long |
sizeOfObject(Object o)
Best effort attempt to estimate the size in bytes of an undetermined object.
|
static long |
sizeOfObject(Object o,
long defSize)
Best effort attempt to estimate the size in bytes of an undetermined object.
|
public static final long ONE_KB
public static final long ONE_MB
public static final long ONE_GB
public 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 final int QUERY_DEFAULT_RAM_BYTES_USED
public static final int UNKNOWN_DEFAULT_RAM_BYTES_USED
public static final long HASHTABLE_RAM_BYTES_PER_ENTRY
public static final long LINKED_HASHTABLE_RAM_BYTES_PER_ENTRY
public static final int MAX_DEPTH
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 sizeOf(String[] arr)
public static long sizeOfMap(Map<?,?> map)
UNKNOWN_DEFAULT_RAM_BYTES_USED when object type is not well known.
This method recurses up to MAX_DEPTH.public static long sizeOfMap(Map<?,?> map, long defSize)
MAX_DEPTH.public static long sizeOfCollection(Collection<?> collection)
UNKNOWN_DEFAULT_RAM_BYTES_USED when object type is not well known.
This method recurses up to MAX_DEPTH.public static long sizeOfCollection(Collection<?> collection, long defSize)
MAX_DEPTH.public static long sizeOfObject(Object o)
UNKNOWN_DEFAULT_RAM_BYTES_USED.public static long sizeOfObject(Object o, long defSize)
shallowSizeOf(Object), or using the supplied defSize parameter if
its value is greater than 0.public static long sizeOf(String s)
public static long shallowSizeOf(Object[] arr)
public static long shallowSizeOf(Object obj)
JVM object alignments are also applied.
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).Copyright © 2021. All rights reserved.