Documentation ¶
Overview ¶
Package parser provides OpenJDK's hprof heap dump parser.
Parse hprof binary dump format as described in http://hg.openjdk.java.net/jdk/jdk/file/4b49cfba69fe/src/hotspot/share/services/heapDumper.cpp.
Index ¶
Constants ¶
const ( HProfRecordTypeUTF8 HProfRecordType = 0x01 HProfRecordTypeLoadClass = 0x02 HProfRecordTypeUnloadClass = 0x03 HProfRecordTypeFrame = 0x04 HProfRecordTypeTrace = 0x05 HProfRecordTypeAllocSites = 0x06 HProfRecordTypeHeapSummary = 0x07 HProfRecordTypeStartThread = 0x0a HProfRecordTypeEndThread = 0x0b HProfRecordTypeHeapDump = 0x0c HProfRecordTypeHeapDumpSegment = 0x1c HProfRecordTypeHeapDumpEnd = 0x2c HProfRecordTypeCPUSamples = 0x0d HProfRecordTypeControlSettings = 0x0e HProfHDRecordTypeRootUnknown HProfHDRecordType = 0xff HProfHDRecordTypeRootJNIGlobal = 0x01 HProfHDRecordTypeRootJNILocal = 0x02 HProfHDRecordTypeRootJavaFrame = 0x03 HProfHDRecordTypeRootNativeStack = 0x04 HProfHDRecordTypeRootStickyClass = 0x05 HProfHDRecordTypeRootThreadBlock = 0x06 HProfHDRecordTypeRootMonitorUsed = 0x07 HProfHDRecordTypeRootThreadObj = 0x08 HProfHDRecordTypeClassDump HProfHDRecordType = 0x20 HProfHDRecordTypeInstanceDump = 0x21 HProfHDRecordTypeObjectArrayDump = 0x22 HProfHDRecordTypePrimitiveArrayDump = 0x23 )
HProf's record types.
Variables ¶
var ( // ValueSize is a size of the HProf values. ValueSize = map[hprofdata.HProfValueType]int{ hprofdata.HProfValueType_OBJECT: -1, hprofdata.HProfValueType_BOOLEAN: 1, hprofdata.HProfValueType_CHAR: 2, hprofdata.HProfValueType_FLOAT: 4, hprofdata.HProfValueType_DOUBLE: 8, hprofdata.HProfValueType_BYTE: 1, hprofdata.HProfValueType_SHORT: 2, hprofdata.HProfValueType_INT: 4, hprofdata.HProfValueType_LONG: 8, } )
Functions ¶
This section is empty.
Types ¶
type HProfHDRecordType ¶
type HProfHDRecordType byte
HProfHDRecordType is a HProf heap dump subrecord type.
type HProfHeader ¶
type HProfHeader struct { // Magic string. Header string // The size of object IDs. IdentifierSize uint32 // Dump creation time. Timestamp time.Time }
HProfHeader is a HProf file header.
type HProfParser ¶
type HProfParser struct {
// contains filtered or unexported fields
}
HProfParser is a HProf file parser.
func (*HProfParser) ParseHeader ¶
func (p *HProfParser) ParseHeader() (*HProfHeader, error)
ParseHeader parses the HProf header.
func (*HProfParser) ParseRecord ¶
func (p *HProfParser) ParseRecord() (interface{}, error)
ParseRecord returns the next HProf record.
HProf file consists of sequence of records. Heapdump records and heapdump segement records contains subrecords inside. This method parses out those recordss and subrecords and returns one record for each. The returned value is one of the followings:
* `*hprofdata.HProfRecordUTF8` * `*hprofdata.HProfRecordLoadClass` * `*hprofdata.HProfRecordFrame` * `*hprofdata.HProfRecordTrace` * `*hprofdata.HProfRecordHeapDumpBoundary` * `*hprofdata.HProfClassDump` * `*hprofdata.HProfInstanceDump` * `*hprofdata.HProfObjectArrayDump` * `*hprofdata.HProfPrimitiveArrayDump` * `*hprofdata.HProfRootJNIGlobal` * `*hprofdata.HProfRootJNILocal` * `*hprofdata.HProfRootJavaFrame` * `*hprofdata.HProfRootStickyClass` * `*hprofdata.HProfRootThreadObj`
It returns io.EOF at the end of the file.