Package gw.util.perf.objectsize
Class ObjectSizeUtil
- java.lang.Object
-
- gw.util.perf.objectsize.ObjectSizeUtil
-
public class ObjectSizeUtil extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classObjectSizeUtil.ObjectEntry
-
Field Summary
Fields Modifier and Type Field Description private static java.text.DecimalFormatdecimalFormatprivate static IObjectSizeFilterDEFAULT_FILTERprivate static java.lang.StringINDENTprivate static java.util.MapprimitiveSizesstatic booleanVERBOSE
-
Constructor Summary
Constructors Constructor Description ObjectSizeUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static ObjectSizedeepSizeOf(java.lang.Object obj)static ObjectSizedeepSizeOf(java.lang.Object obj, IObjectSizeFilter filter, int maxObjects)Calculates full size of object iterating over its hierarchy graph.private static longgetArrayShallowSize(java.lang.Object obj)static intgetFieldSize(java.lang.Class clazz)static intgetPointerSize()private static longinternalSizeOf(ObjectSizeUtil.ObjectEntry entry, java.util.Stack<ObjectSizeUtil.ObjectEntry> stack, java.util.Map<java.lang.Object,java.lang.Object> visited, IObjectSizeFilter filter, java.lang.String indent)static voidmain(java.lang.String[] args)private static longroundUpToNearestEightBytes(long result)private static booleanskipField(java.lang.reflect.Field field, IObjectSizeFilter filter)private static booleanskipObject(java.lang.Object obj, java.util.Map<java.lang.Object,java.lang.Object> visited, IObjectSizeFilter filter)
-
-
-
Field Detail
-
VERBOSE
public static boolean VERBOSE
-
INDENT
private static final java.lang.String INDENT
- See Also:
- Constant Field Values
-
DEFAULT_FILTER
private static final IObjectSizeFilter DEFAULT_FILTER
-
decimalFormat
private static java.text.DecimalFormat decimalFormat
-
primitiveSizes
private static final java.util.Map primitiveSizes
-
-
Method Detail
-
getFieldSize
public static int getFieldSize(java.lang.Class clazz)
-
getPointerSize
public static int getPointerSize()
-
deepSizeOf
public static ObjectSize deepSizeOf(java.lang.Object obj, IObjectSizeFilter filter, int maxObjects)
Calculates full size of object iterating over its hierarchy graph.- Parameters:
obj- object to calculate size offilter- the filter used to ignore fields or objectsmaxObjects- the max numbers of objects to traverse- Returns:
- object size
- Throws:
java.lang.Exception
-
deepSizeOf
public static ObjectSize deepSizeOf(java.lang.Object obj)
-
skipObject
private static boolean skipObject(java.lang.Object obj, java.util.Map<java.lang.Object,java.lang.Object> visited, IObjectSizeFilter filter)
-
skipField
private static boolean skipField(java.lang.reflect.Field field, IObjectSizeFilter filter)
-
getArrayShallowSize
private static long getArrayShallowSize(java.lang.Object obj)
-
internalSizeOf
private static long internalSizeOf(ObjectSizeUtil.ObjectEntry entry, java.util.Stack<ObjectSizeUtil.ObjectEntry> stack, java.util.Map<java.lang.Object,java.lang.Object> visited, IObjectSizeFilter filter, java.lang.String indent)
-
roundUpToNearestEightBytes
private static long roundUpToNearestEightBytes(long result)
-
main
public static void main(java.lang.String[] args) throws java.lang.Exception- Throws:
java.lang.Exception
-
-