Skip to content

Glossary

One-line definitions of the terms this guide uses. Terms link to the page that explains them in depth.

A

accumulating class. In a leak suspect, the class with the most instances inside the dominated subtree.

allocation site. A call site, with its stack trace, where a batch of objects was created. Only in dumps captured with allocation tracking.

ART. The Android Runtime, which runs apps on Android 5 and later and writes Android's heap dumps.

D

dominator. Object A dominates object B when every path from a GC root to B goes through A. A suspect is a dominator that retains a lot. See Shallow and retained size.

dominator tree. The tree of immediate dominators over the whole object graph. heaptrail builds it with the Lengauer–Tarjan algorithm to compute retained sizes.

G

GC root. A place the runtime treats as always alive, such as a static field or a thread's local variable. See GC roots and paths.

H

heap dump. A snapshot of every object in a process's heap, the classes, and the references between them. Also called a dump, or an .hprof file.

holder. An object, field or array slot that points at another object. Also called a referrer.

hop. One link in a chain of holders. A path is made of hops.

HPROF. The binary format of heap dumps. See HPROF formats.

I

instance. An object that is an instance of a class, as opposed to an array.

J

JNI. The Java Native Interface. Native code holds references to Java objects through it, and those become roots.

M

mapping file. The mapping.txt that R8 writes, recording what each obfuscated name stands for. See Deobfuscate release builds.

monotonic growth candidate. In a series, a class whose value never decreases between neighboring dumps and ends higher than it started.

N

native memory. Memory outside the Java heap: native allocations, decoded images, graphics buffers. Not in a heap dump. See Native context.

O

object id. The number a dump assigns to an object. Valid within one dump only. See Object ids.

orphan. A path that ends because no instance field or array slot points at the last object. It may be held by a static field, or be unreachable. See Paths to a GC root.

P

path. A chain of holders from an object up to a GC root. See Paths to a GC root.

phantom reference. A reference that does not keep its target alive and is used for cleanup after the target is gone.

PSS. Proportional set size: a process's memory with shared pages split between the processes that share them. dumpsys meminfo reports it.

preview. The first bytes of a primitive array, decoded as text or shown as hex. See Content previews.

R

R8. The Android tool that shrinks and obfuscates code, and replaced ProGuard.

referrer. The same as a holder. The --find-referrers mode lists them.

retained size. The memory freed if an object were collected: its own size plus everything only it keeps alive. See Shallow and retained size.

retained-reachable. In a suspects report, the bytes the GC roots can reach. Suspect shares are relative to it.

S

series. Three or more dumps of one process, in order, compared by --diff-series.

shallow size. The memory an object occupies itself, without what it points to.

soft reference. A reference that keeps its target alive until memory runs low.

static field. A field that belongs to a class and not to an instance. It lives as long as the class does, so it is a common holder of caches.

string table. The dump's list of identifier names (classes, fields, methods, files). -l prints it.

suspect. An object that retains a large share of the heap, reported by --leak-suspects. A lead, not a verdict.

T

transcript. The text file android-capture writes beside a dump, recording every adb command and the evidence of what was on screen.

W

weak reference. A reference that does not keep its target alive. The collector may clear it at the next collection. See Reference strength.