shark-graph / shark / HeapObject / HeapClass

HeapClass

class HeapClass : HeapObject

A class in the heap dump.

Properties

NameSummary
classHierarchyval classHierarchy: Sequence<HeapObject.HeapClass>
The class hierarchy starting at this class (included) and ending at the Object class (included).
directInstancesval directInstances: Sequence<HeapObject.HeapInstance>
All direct instances of this class, ie excluding any instance of subclasses of this class.
graphval graph: HeapGraph
The graph of objects in the heap, which you can use to navigate the heap.
hasReferenceInstanceFieldsval hasReferenceInstanceFields: Boolean
instanceByteSizeval instanceByteSize: Int
The total byte size of fields for instances of this class, as registered in the class dump. This includes the size of fields from superclasses.
instancesval instances: Sequence<HeapObject.HeapInstance>
All instances of this class, including instances of subclasses of this class.
isArrayClassval isArrayClass: Boolean
Returns true if this class is an array class, and false otherwise.
isObjectArrayClassval isObjectArrayClass: Boolean
isPrimitiveArrayClassval isPrimitiveArrayClass: Boolean
isPrimitiveWrapperClassval isPrimitiveWrapperClass: Boolean
Whether this is class is a primitive wrapper type
nameval name: String
The name of this class, identical to Class.getName. If this class is an array class, the name has a suffix of brackets for each dimension of the array, e.g. com.Foo[][] is a class for 2 dimensional arrays of com.Foo.
objectArrayInstancesval objectArrayInstances: Sequence<HeapObject.HeapObjectArray>
objectIdval objectId: Long
The heap identifier of this object.
objectIndexval objectIndex: Int
An positive object index that's specific to how Shark stores objects in memory. The index starts at 0 and ends at HeapGraph.objectCount - 1. There are no gaps, every index value corresponds to an object. Classes are first, then instances, then object arrays then primitive arrays.
primitiveArrayInstancesval primitiveArrayInstances: Sequence<HeapObject.HeapPrimitiveArray>
Primitive arrays are one dimensional arrays of a primitive type. N-dimension arrays of primitive types (e.g. int[][]) are object arrays pointing to primitive arrays.
recordSizeval recordSize: Int
The total byte size for the record of this object in the heap dump.
simpleNameval simpleName: String
Returns name stripped of any string content before the last period (included).
subclassesval subclasses: Sequence<HeapObject.HeapClass>
All the subclasses (direct and indirect) of this class, in the order they were recorded in the heap dump.
superclassval superclass: HeapObject.HeapClass?
The HeapClass representing the superclass of this HeapClass. If this HeapClass represents either the Object class or a primitive type, then null is returned. If this HeapClass represents an array class then the HeapClass object representing the Object class is returned.

Inherited Properties

NameSummary
asClassval asClass: HeapObject.HeapClass?
This HeapObject as a HeapClass if it is one, or null otherwise
asInstanceval asInstance: HeapObject.HeapInstance?
This HeapObject as a HeapInstance if it is one, or null otherwise
asObjectArrayval asObjectArray: HeapObject.HeapObjectArray?
This HeapObject as a HeapObjectArray if it is one, or null otherwise
asPrimitiveArrayval asPrimitiveArray: HeapObject.HeapPrimitiveArray?
This HeapObject as a HeapPrimitiveArray if it is one, or null otherwise

Functions

NameSummary
getoperator fun get(fieldName: String): HeapField?
instanceFieldNamefun instanceFieldName(fieldRecord: FieldRecord): String
Returns the name of the field declared in this class for the specified fieldRecord.
readFieldsByteSizefun readFieldsByteSize(): Int
The total byte size of fields for instances of this class, computed as the sum of the individual size of each field of this class. This does not include the size of fields from superclasses.
readRecordfun readRecord(): ClassDumpRecord
Reads and returns the underlying ClassDumpRecord.
readRecordFieldsfun readRecordFields(): List<FieldRecord>
readRecordStaticFieldsfun readRecordStaticFields(): List<StaticFieldRecord>
readStaticFieldfun readStaticField(fieldName: String): HeapField?
Returns a HeapField object that reflects the specified declared field of the class represented by this HeapClass object, or null if this field does not exist. The name parameter specifies the simple name of the desired field.
readStaticFieldsfun readStaticFields(): Sequence<HeapField>
The static fields of this class, as a sequence of HeapField.
subclassOfinfix fun subclassOf(superclass: HeapObject.HeapClass): Boolean
Returns true if superclass is a superclass of this HeapClass.
superclassOfinfix fun superclassOf(subclass: HeapObject.HeapClass): Boolean
Returns true if subclass is a sub class of this HeapClass.
toStringfun toString(): String