HeapClass

class HeapClass : HeapObject

A class in the heap dump.

Functions

get
Link copied to clipboard
operator fun get(fieldName: String): HeapField?
instanceFieldName
Link copied to clipboard
fun instanceFieldName(fieldRecord: HprofRecord.HeapDumpRecord.ObjectRecord.ClassDumpRecord.FieldRecord): String

Returns the name of the field declared in this class for the specified fieldRecord.

readFieldsByteSize
Link copied to clipboard
fun 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.

readRecord
Link copied to clipboard
open override fun readRecord(): HprofRecord.HeapDumpRecord.ObjectRecord.ClassDumpRecord

Reads and returns the underlying ClassDumpRecord.

readRecordFields
Link copied to clipboard
fun readRecordFields(): List<HprofRecord.HeapDumpRecord.ObjectRecord.ClassDumpRecord.FieldRecord>
readRecordStaticFields
Link copied to clipboard
fun readRecordStaticFields(): List<HprofRecord.HeapDumpRecord.ObjectRecord.ClassDumpRecord.StaticFieldRecord>
readStaticField
Link copied to clipboard
fun 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.

readStaticFields
Link copied to clipboard
fun readStaticFields(): Sequence<HeapField>

The static fields of this class, as a sequence of HeapField.

subclassOf
Link copied to clipboard
infix fun subclassOf(superclass: HeapObject.HeapClass): Boolean

Returns true if superclass is a superclass of this HeapClass.

superclassOf
Link copied to clipboard
infix fun superclassOf(subclass: HeapObject.HeapClass): Boolean

Returns true if subclass is a sub class of this HeapClass.

toString
Link copied to clipboard
open override fun toString(): String

Properties

asClass
Link copied to clipboard
val asClass: HeapObject.HeapClass?

This HeapObject as a HeapClass if it is one, or null otherwise

asInstance
Link copied to clipboard
val asInstance: HeapObject.HeapInstance?

This HeapObject as a HeapInstance if it is one, or null otherwise

asObjectArray
Link copied to clipboard
val asObjectArray: HeapObject.HeapObjectArray?

This HeapObject as a HeapObjectArray if it is one, or null otherwise

asPrimitiveArray
Link copied to clipboard
val asPrimitiveArray: HeapObject.HeapPrimitiveArray?

This HeapObject as a HeapPrimitiveArray if it is one, or null otherwise

classHierarchy
Link copied to clipboard
val classHierarchy: Sequence<HeapObject.HeapClass>

The class hierarchy starting at this class (included) and ending at the Object class (included).

directInstances
Link copied to clipboard
val directInstances: Sequence<HeapObject.HeapInstance>

All direct instances of this class, ie excluding any instance of subclasses of this class.

graph
Link copied to clipboard
open override val graph: HeapGraph

The graph of objects in the heap, which you can use to navigate the heap.

hasReferenceInstanceFields
Link copied to clipboard
val hasReferenceInstanceFields: Boolean
instanceByteSize
Link copied to clipboard
val 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.

instances
Link copied to clipboard
val instances: Sequence<HeapObject.HeapInstance>

All instances of this class, including instances of subclasses of this class.

isArrayClass
Link copied to clipboard
val isArrayClass: Boolean

Returns true if this class is an array class, and false otherwise.

isObjectArrayClass
Link copied to clipboard
val isObjectArrayClass: Boolean
isPrimitiveArrayClass
Link copied to clipboard
val isPrimitiveArrayClass: Boolean
isPrimitiveWrapperClass
Link copied to clipboard
val isPrimitiveWrapperClass: Boolean

Whether this is class is a primitive wrapper type

name
Link copied to clipboard
val 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.

objectArrayInstances
Link copied to clipboard
objectId
Link copied to clipboard
open override val objectId: Long

The heap identifier of this object.

objectIndex
Link copied to clipboard
open override val 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.

primitiveArrayInstances
Link copied to clipboard

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.

recordSize
Link copied to clipboard
open override val recordSize: Int

The total byte size for the record of this object in the heap dump.

simpleName
Link copied to clipboard
val simpleName: String

Returns name stripped of any string content before the last period (included).

subclasses
Link copied to clipboard
val subclasses: Sequence<HeapObject.HeapClass>

All the subclasses (direct and indirect) of this class, in the order they were recorded in the heap dump.

superclass
Link copied to clipboard
val 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.