blob: 4df26bfaf4c57d24cd801157adc62a9077de2b71 [file] [log] [blame] [view]
Albert J. Wong2108fde2017-06-08 17:55:501# Memory
2
3Landing page for all things related to memory usage in Chromium.
4
5The goal is to keep an ever present set of links and references that will
6help people what is actively happening in the memory space. Please keep
7this landing page short and action oriented.
8
9That being said, please also send CL with update and changes. This should
10reflect current active status, and it's easier to do that if everyone helps
11maintain it. :)
12
13## How is chrome's memory usage doing in the world?
14
15Look at UMA for the Memory.\* UMAs. Confused at which to use? Start with these:
16
17
18| name | description | Caveats |
19|------|-------------|---------|
20| Memory.\*.Committed | private, image, and file mapped memory | Windows only. Over penalizes Chrome for mapped images and files |
21| Memory.Experimental.\*.<br />PrivateMemoryFootprint | New metric measuring private anonymous memory usage (swap or ram) by Chrome. | See Consistent Memory Metrics |
22| --Memory.\*.Large2-- | Measures physical memory usage. | **DO NOT USE THIS METRIC**\* |
23
24\*Do **NOT** use `Memory.\*.Large2` as the `Large2` metrics only
25count the physical ram used. This means the number varies based on the behavior
26of applications other than Chrome making it near meaningless. Yes, they are
27currently in the default finch trials. We're going to fix that.
28
29
30## How do developers communicate?
31
32Note, these channels are for developer coordination and NOT user support. If
33you are a Chromium user experiencing a memory related problem, file a bug
34instead.
35
36| name | description |
37|------|-------------|
38| [[email protected]]() | Discussion group for all things memory related. Post docs, discuss bugs, etc., here. |
39| [email protected] | Google internal version of the above. Use sparingly. |
40| https://chromiumdev.slack.com/messages/memory/ | Slack channel for real-time discussion with memory devs. Lots of C++ sadness too. |
41| crbug [Performance=Memory](https://bugs.chromium.org/p/chromium/issues/list?can=2&q=Performance%3DMemory) label | Bucket with auto-filed and user-filed bugs. |
42| crbug [Stability=Memory](https://bugs.chromium.org/p/chromium/issues/list?can=2&q=Stability%3DMemory) label | Tracks mostly OOM crashes. |
43
44
45## I have a reproducible memory problem, what do I do?
46
47Yay! Please file a [memory
48bug](https://bugs.chromium.org/p/chromium/issues/entry?template=Memory%20usage).
49
50If you are willing to do a bit more, please grab a memory infra trace and upload
51that. Here are [instructions for MacOS](https://docs.google.com/document/d/15mBOu_uZbgP5bpdHZJXEnF9csSRq7phUWXnZcteVr0o/edit).
52(TODO: Add instructions for easily grabbing a trace for all platforms.)
53
54
55## I'm a dev and I want to help. How do I get started?
56
57Great! First, sign up for the mailing lists above and check out the slack channel.
58
59Second, familiarize yourself with the following:
60
61| Topic | Description |
62|-------|-------------|
63| [Key Concepts in Chrome Memory](/memory/key_concepts.md) | Primer for memory terminology in Chrome. |
64| [memory-infra](/memory-infra/README.md) | The primary tool used for inspecting allocations. |
65
66
67## What are people actively working on?
68| Project | Description |
69|---------|-------------|
70| [Memory Coordinator](https://docs.google.com/document/d/1dkUXXmpJk7xBUeQM-olBpTHJ2MXamDgY_kjNrl9JXMs/edit#heading=h.swke19b7apg5) (including [Purge+Throttle/Suspend](https://docs.google.com/document/d/1EgLimgxWK5DGhptnNVbEGSvVn6Q609ZJaBkLjEPRJvI/edit)) | Centralized policy and coordination of all memory components in Chrome |
71| [Memory-Infra](/memory-infra/README.md) | Tooling and infrastructure for Memory |
72| [System health benchmarks](https://docs.google.com/document/d/1pEeCnkbtrbsK3uuPA-ftbg4kzM4Bk7a2A9rhRYklmF8/edit?usp=sharing) | Automated tests based on telemetry |
73
74
75## Key knowledge areas and contacts
76| Knowledge Area | Contact points |
77|----------------|----------------|
78| Chrome on Android | mariahkomenko, dskiba, ssid |
79| Browser Process | mariahkomenko, dskiba, ssid |
80| GPU/cc | ericrk |
81| Memory metrics | erikchen, primano, ajwong, wez |
82| Native Heap Profiling | primiano, dskiba, ajwong |
83| Net Stack | mmenke, rsleevi, xunjieli |
84| Renderer Process | haraken, tasak, hajimehoshi, keishi, hiroshige |
85| V8 | hpayer, ulan, verwaest, mlippautz |
86
87
88## Other docs
89* [Memory Charter](https://docs.google.com/document/d/1yATy7MBclHycCUR0Jji4eczHT_ejp5lmVZOhNwNQwmM/edit#)
90