Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

MemoryAnalyzer/Indexes

< MemoryAnalyzer
Revision as of 15:57, 14 May 2021 by Andrew johnson.uk.ibm.com (Talk | contribs) (Some of the internals of Eclipse Memory Analyzer)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Index

Memory Analyzer uses several indexes to enable access to different parts of the snapshot.

IDENTIFIER 
IntToLong - object ID to object address
O2CLASS 
object ID to class ID
A2SIZE 
array object ID (or other non-fixed size object) to encoded size (32-bits)
INBOUND 
object ID to list of object IDs
OUTBOUND 
object ID to list of object IDs
DOMINATED 
Dominated: object id to N dominated object ids
O2RETAINED 
object ID to long
DOMINATOR 
Dominator of: object id to the id of its dominator
I2RETAINED 
cache of size of class, classloader (read/write)

HPROF random access to GZIP compressed files to read fields and array contents

  • org.eclipse.mat.hprof.DefaultPositionInputStream
    • org.eclipse.mat.parser.io.BufferedRandomAccessInputStream
      • HashMapLongObject
        • [*N] page
          • [*N] SoftReference
            • buffer byte[512]
      • org.eclipse.mat.hprof.CompressedRandomAccessFile
        • org.eclipse.mat.hprof.SeekableStream
          • [*N} org.eclipse.mat.hprof.SeekableStream$PosStream
            • org.eclipse.mat.hprof.GZIPInputStream2
              • io.nayuki.deflate.InflaterInputStream
                • inputBuffer byte[16384]
                • dictionary byte[32768]
          • org.eclipse.mat.hprof.SeekableStream$PosStream

Back to the top