tree: bf0aff5664db58c12f7dc6652f84e7de4b2e58c2 [path history] [tgz]
  1. README.md
  2. achievements.md
  3. android_dev_tips.md
  4. bad_jokes.md
  5. key_concepts.md
  6. objectives.md
docs/memory/README.md

Memory

Landing page for all things memory-related in Chromium.

The goal is to keep an up-to-date set of links and references that will help people understand 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 the UMAs Memory.{Total,Renderer,Browser,Gpu,Extension}.PrivateMemoryFootprint.

These metrics are known to lack sufficient context. e.g. How many renderers are open? What site is a renderer hosting? How long has the browser been running?

Some of these graphs are now available at go/mem-ukm.

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.

namedescription
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.
https://chromiumdev.slack.com/messages/memory/Slack 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:

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

What are people actively working on?

ProjectDescription
Purge+Throttle/SuspendCentralized policy and coordination of all memory components in Chrome
Memory-InfraTooling and infrastructure for Memory
System health benchmarksAutomated tests based on telemetry
Out of Process Heap ProfilingCollect heap dumps from the wild
Always on Document Leak DetectorUMA-based sanity check that DOM objects are not leaking in the wild.
Real-world leak detectorRuns blink leak detector on top-sites [web-page-replay] on waterfall.

Key knowledge areas and contacts

Knowledge AreaContact points
Chrome on Androidmariakhomenko, dskiba, ssid
Browser Processmariakhomenko, dskiba, ssid
GPU/ccericrk
Memory metricserikchen, primano, ajwong, wez
Native Heap Profilingprimiano, dskiba, ajwong
Net Stackmmenke, rsleevi, xunjieli
Renderer Processharaken, tasak, hajimehoshi, keishi, hiroshige
V8hpayer, ulan, verwaest, mlippautz
Out of Process Heap Profilingerikchen, ajwong, brettw, etienneb

Other docs