How to Read Firefox about:memory Explicit and Heap Trees
This article explains how to access and interpret the memory usage
tree on the about:memory page in the Firefox web browser.
Specifically, it covers how to navigate the hierarchical structure of
the "explicit" memory allocation section and understand the significance
of the "heap-unclassified" metric to diagnose high RAM usage and
potential memory leaks.
Accessing the Memory Report
- Open the Firefox browser.
- Type
about:memoryinto the address bar and press Enter. - Under the Free memory or Measure and save boxes, find the Show memory reports section and click the Measure button.
Firefox will generate a detailed report divided by processes, starting with the "Main Process" followed by individual "Web Content" and "Extension" processes.
Understanding the Tree Breakdown
The memory report uses a collapsible tree structure to display data.
You can click on any text node with a ++ or --
symbol (or simply click the text itself) to expand or collapse that
specific branch.
Each line in the tree follows a standard format:
1,234.56 MB (100.0%) -- explicit
- Size (e.g., 1,234.56 MB): The exact amount of memory consumed by that entry. By default, it is shown in Megabytes (MB), though smaller sub-entries may show in Kilobytes (KB) or Bytes (B).
- Percentage (e.g., 100.0%): How much of the parent category's memory this specific item is using.
- Tree Connectors (
├──and└──): Visual indicators showing the hierarchy. Items indented to the right are children of the item above them. The sum of all immediate child items will equal the total of their parent item.
Reading "Explicit" Allocations
The explicit tree is the most important section for diagnosing memory usage. It represents the exact amount of memory that Firefox code and its components have explicitly requested from the operating system.
Because the explicit root node represents the total tracked memory
for that specific process, it always starts at 100.0%. When
you look beneath the explicit line, the browser breaks down
where that memory is going in descending order from largest consumer to
smallest.
Common branches under explicit include:
- window-objects: Memory used by open tabs and user interface windows. Expanding this will show the exact URLs of the websites currently using your RAM, broken down further into DOM elements, style sheets, and scripts.
- js-non-window: Memory used by JavaScript that is not tied to a specific web page, such as background scripts, browser internals, and extensions.
- images: RAM dedicated to caching and rendering images on web pages.
- gfx / webrender: Memory used by the graphics engine to draw the browser and web pages on your screen.
- heap-overhead: Memory wasted due to the way the browser's memory allocator rounds up requests or fragments data.
To find out what is slowing down your browser, simply follow the
largest percentages down the explicit tree until you reach
the end of a branch.
Reading "Heap-Unclassified"
As you read the top-level branches directly beneath the
explicit node, you will see an entry labeled
heap-unclassified. Unlike other branches, you cannot
expand heap-unclassified to see what is inside it.
Firefox uses internal "memory reporters" to label and track RAM
usage. When a component requests memory, the reporter tags it so it
shows up in the explicit tree (like under
images or window-objects).
Heap-unclassified is the pool of memory that Firefox
knows it has allocated on the heap, but lacks a specific memory reporter
to categorize.
Here is how to interpret the heap-unclassified
value:
- Normal Usage (5% to 20%): It is completely normal for a portion of memory to be unclassified. Creating a memory reporter for every tiny function in the browser would slow Firefox down, so minor allocations are intentionally left untracked.
- High Usage (Over 25%): If
heap-unclassifiedmakes up a massive percentage of yourexplicitmemory, it usually indicates a memory leak.
Because this memory is untracked, a high
heap-unclassified number typically points to external
factors interfering with Firefox. The most common culprits are poorly
coded browser extensions, outdated graphics card drivers, or third-party
antivirus software injecting code into the browser. If this number is
unusually high, you can troubleshoot it by restarting Firefox in
Troubleshoot Mode (which disables extensions and hardware acceleration)
and checking about:memory again.