Package org.github.jamm
Class MemoryMeter
- java.lang.Object
-
- org.github.jamm.MemoryMeter
-
public class MemoryMeter extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
MemoryMeter.Guess
-
Constructor Summary
Constructors Constructor Description MemoryMeter()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static void
agentmain(java.lang.String options, java.lang.instrument.Instrumentation inst)
long
countChildren(java.lang.Object object)
MemoryMeter
enableDebug()
Makes thisMemoryMeter
prints the classes tree toSystem.out
when measuringMemoryMeter
enableDebug(int depth)
Makes thisMemoryMeter
prints the classes tree toSystem.out
up to the specified depth when measuringstatic boolean
hasInstrumentation()
MemoryMeter
ignoreKnownSingletons()
return a MemoryMeter that ignores space occupied by known singletons such as Class objects and EnumsMemoryMeter
ignoreNonStrongReferences()
return a MemoryMeter that ignores space occupied by known singletons such as Class objects and EnumsMemoryMeter
ignoreOuterClassReference()
long
measure(java.lang.Object object)
long
measureDeep(java.lang.Object object)
MemoryMeter
omitSharedBufferOverhead()
static void
premain(java.lang.String options, java.lang.instrument.Instrumentation inst)
MemoryMeter
withGuessing(MemoryMeter.Guess guess)
MemoryMeter
withTrackerProvider(java.util.concurrent.Callable<java.util.Set<java.lang.Object>> trackerProvider)
-
-
-
Method Detail
-
premain
public static void premain(java.lang.String options, java.lang.instrument.Instrumentation inst)
-
agentmain
public static void agentmain(java.lang.String options, java.lang.instrument.Instrumentation inst)
-
hasInstrumentation
public static boolean hasInstrumentation()
-
withTrackerProvider
public MemoryMeter withTrackerProvider(java.util.concurrent.Callable<java.util.Set<java.lang.Object>> trackerProvider)
- Parameters:
trackerProvider
-- Returns:
- a MemoryMeter with the given provider
-
omitSharedBufferOverhead
public MemoryMeter omitSharedBufferOverhead()
- Returns:
- a MemoryMeter that only counts the bytes remaining in a ByteBuffer in measureDeep, rather than the full size of the backing array. TODO: handle other types of Buffers
-
withGuessing
public MemoryMeter withGuessing(MemoryMeter.Guess guess)
- Returns:
- a MemoryMeter that permits guessing the size of objects if instrumentation isn't enabled
-
ignoreOuterClassReference
public MemoryMeter ignoreOuterClassReference()
- Returns:
- a MemoryMeter that ignores the size of an outer class reference
-
ignoreKnownSingletons
public MemoryMeter ignoreKnownSingletons()
return a MemoryMeter that ignores space occupied by known singletons such as Class objects and Enums
-
ignoreNonStrongReferences
public MemoryMeter ignoreNonStrongReferences()
return a MemoryMeter that ignores space occupied by known singletons such as Class objects and Enums
-
enableDebug
public MemoryMeter enableDebug()
Makes thisMemoryMeter
prints the classes tree toSystem.out
when measuring
-
enableDebug
public MemoryMeter enableDebug(int depth)
Makes thisMemoryMeter
prints the classes tree toSystem.out
up to the specified depth when measuring- Parameters:
depth
- the maximum depth for which the class tree must be printed
-
measure
public long measure(java.lang.Object object)
- Returns:
- the shallow memory usage of @param object
- Throws:
java.lang.NullPointerException
- if object is null
-
measureDeep
public long measureDeep(java.lang.Object object)
- Returns:
- the memory usage of @param object including referenced objects
- Throws:
java.lang.NullPointerException
- if object is null
-
countChildren
public long countChildren(java.lang.Object object)
- Returns:
- the number of child objects referenced by @param object
- Throws:
java.lang.NullPointerException
- if object is null
-
-