parser

package
v0.0.0-...-e6e1b3e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 6, 2020 License: Apache-2.0 Imports: 7 Imported by: 1

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

View Source
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

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 NewParser

func NewParser(r io.Reader) *HProfParser

NewParser creates a new HProf 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.

type HProfRecordType

type HProfRecordType byte

HProfRecordType is a HProf record type.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL