tree: 0f97f523fab91ef361cd7b869791dc54d5c8e994 [path history] [tgz]


Landing page for all things related to memory usage in Chromium.

The goal is to keep an ever present set of links and references that will help people what is actively happening in the memory space. Please keep this landing page short and action oriented.

That being said, please also send CL with update and changes. This should reflect current active status, and it's easier to do that if everyone helps maintain it. :)

How is chrome's memory usage doing in the world?

Look at UMA for the Memory.* UMAs. Confused at which to use? Start with these:

Memory.*.Committedprivate, image, and file mapped memoryWindows only. Over penalizes Chrome for mapped images and files
New metric measuring private anonymous memory usage (swap or ram) by Chrome.See Consistent Memory Metrics
--Memory.*.Large2--Measures physical memory usage.DO NOT USE THIS METRIC*

*Do NOT use Memory.\*.Large2 as the Large2 metrics only count the physical ram used. This means the number varies based on the behavior of applications other than Chrome making it near meaningless. Yes, they are currently in the default finch trials. We're going to fix that.

How do developers communicate?

Note, these channels are for developer coordination and NOT user support. If you are a Chromium user experiencing a memory related problem, file a bug instead.

memory-dev@chromium.orgDiscussion group for all things memory related. Post docs, discuss bugs, etc., here.
chrome-memory@google.comGoogle internal version of the above. Use sparingly. channel for real-time discussion with memory devs. Lots of C++ sadness too.
crbug Performance=Memory labelBucket with auto-filed and user-filed bugs.
crbug Stability=Memory labelTracks mostly OOM crashes.

I have a reproducible memory problem, what do I do?

Yay! Please file a memory bug.

If you are willing to do a bit more, please grab a memory infra trace and upload that. Here are instructions for MacOS. (TODO: Add instructions for easily grabbing a trace for all platforms.)

I'm a dev and I want to help. How do I get started?

Great! First, sign up for the mailing lists above and check out the slack channel.

Second, familiarize yourself with the following:

Key Concepts in Chrome MemoryPrimer for memory terminology in Chrome.
memory-infraThe primary tool used for inspecting allocations.

What are people actively working on?

Memory Coordinator (including Purge+Throttle/Suspend)Centralized policy and coordination of all memory components in Chrome
Memory-InfraTooling and infrastructure for Memory
System health benchmarksAutomated tests based on telemetry

Key knowledge areas and contacts

Knowledge AreaContact points
Chrome on Androidmariahkomenko, dskiba, ssid
Browser Processmariahkomenko, dskiba, ssid
Memory metricserikchen, primano, ajwong, wez
Native Heap Profilingprimiano, dskiba, ajwong
Net Stackmmenke, rsleevi, xunjieli
Renderer Processharaken, tasak, hajimehoshi, keishi, hiroshige
V8hpayer, ulan, verwaest, mlippautz

Other docs