blob: 4390c2981e6d54870062289a3f612582294897a5 [file] [log] [blame] [view]
Albert J. Wong2108fde2017-06-08 17:55:501# Memory
2
Erik Chen34c0366e2017-11-29 15:47:523Landing page for all things memory-related in Chromium.
Albert J. Wong2108fde2017-06-08 17:55:504
Erik Chen34c0366e2017-11-29 15:47:525The goal is to keep an up-to-date set of links and references that will
6help people understand what is actively happening in the memory space. Please keep
Albert J. Wong2108fde2017-06-08 17:55:507this 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
Erik Chen34c0366e2017-11-29 15:47:5215Look at the UMAs **Memory.{Total,Renderer,Browser,Gpu,Extension}.PrivateMemoryFootprint**.
Albert J. Wong2108fde2017-06-08 17:55:5016
Erik Chen34c0366e2017-11-29 15:47:5217These 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?
Albert J. Wong2108fde2017-06-08 17:55:5018
Erik Chen34c0366e2017-11-29 15:47:5219Some of these graphs are now available at [go/mem-ukm](http://go/mem-ukm).
Albert J. Wong2108fde2017-06-08 17:55:5020
21
22## How do developers communicate?
23
24Note, these channels are for developer coordination and NOT user support. If
25you are a Chromium user experiencing a memory related problem, file a bug
26instead.
27
28| name | description |
29|------|-------------|
30| [memory-dev@chromium.org]() | Discussion group for all things memory related. Post docs, discuss bugs, etc., here. |
31| chrome-memory@google.com | Google internal version of the above. Use sparingly. |
32| https://chromiumdev.slack.com/messages/memory/ | Slack channel for real-time discussion with memory devs. Lots of C++ sadness too. |
33| 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. |
34| crbug [Stability=Memory](https://bugs.chromium.org/p/chromium/issues/list?can=2&q=Stability%3DMemory) label | Tracks mostly OOM crashes. |
35
36
37## I have a reproducible memory problem, what do I do?
38
39Yay! Please file a [memory
40bug](https://bugs.chromium.org/p/chromium/issues/entry?template=Memory%20usage).
41
42If you are willing to do a bit more, please grab a memory infra trace and upload
43that. Here are [instructions for MacOS](https://docs.google.com/document/d/15mBOu_uZbgP5bpdHZJXEnF9csSRq7phUWXnZcteVr0o/edit).
44(TODO: Add instructions for easily grabbing a trace for all platforms.)
45
46
47## I'm a dev and I want to help. How do I get started?
48
49Great! First, sign up for the mailing lists above and check out the slack channel.
50
51Second, familiarize yourself with the following:
52
53| Topic | Description |
54|-------|-------------|
Primiano Tuccifb7942c2017-06-26 16:06:1955| [Key Concepts in Chrome Memory](/docs/memory/key_concepts.md) | Primer for memory terminology in Chrome. |
56| [memory-infra](/docs/memory-infra/README.md) | The primary tool used for inspecting allocations. |
Albert J. Wong2108fde2017-06-08 17:55:5057
58
59## What are people actively working on?
60| Project | Description |
61|---------|-------------|
Erik Chen34c0366e2017-11-29 15:47:5262| [Purge+Throttle/Suspend](https://docs.google.com/document/d/1EgLimgxWK5DGhptnNVbEGSvVn6Q609ZJaBkLjEPRJvI/edit) | Centralized policy and coordination of all memory components in Chrome |
Primiano Tuccifb7942c2017-06-26 16:06:1963| [Memory-Infra](/docs/memory-infra/README.md) | Tooling and infrastructure for Memory |
Albert J. Wong2108fde2017-06-08 17:55:5064| [System health benchmarks](https://docs.google.com/document/d/1pEeCnkbtrbsK3uuPA-ftbg4kzM4Bk7a2A9rhRYklmF8/edit?usp=sharing) | Automated tests based on telemetry |
Erik Chen34c0366e2017-11-29 15:47:5265| [Out of Process Heap Profiling](https://docs.google.com/document/d/1zKNGByeouYz9E719J8dmKNepLLanCNUq310gbzjiHOg/edit#heading=h.aabxwucn5hhp) | Collect heap dumps from the wild |
66| [Always on Document Leak Detector](https://bugs.chromium.org/p/chromium/issues/detail?id=757374) | UMA-based sanity check that DOM objects are not leaking in the wild. |
67| [Real-world leak detector](https://bugs.chromium.org/p/chromium/issues/detail?id=763280) | Runs blink leak detector on top-sites [web-page-replay] on waterfall.
Albert J. Wong2108fde2017-06-08 17:55:5068
69
70## Key knowledge areas and contacts
71| Knowledge Area | Contact points |
72|----------------|----------------|
Maria Khomenko8d890712017-09-11 21:08:1273| Chrome on Android | mariakhomenko, dskiba, ssid |
74| Browser Process | mariakhomenko, dskiba, ssid |
Albert J. Wong2108fde2017-06-08 17:55:5075| GPU/cc | ericrk |
76| Memory metrics | erikchen, primano, ajwong, wez |
77| Native Heap Profiling | primiano, dskiba, ajwong |
78| Net Stack | mmenke, rsleevi, xunjieli |
79| Renderer Process | haraken, tasak, hajimehoshi, keishi, hiroshige |
80| V8 | hpayer, ulan, verwaest, mlippautz |
Erik Chen34c0366e2017-11-29 15:47:5281| Out of Process Heap Profiling | erikchen, ajwong, brettw, etienneb
Albert J. Wong2108fde2017-06-08 17:55:5082
83
84## Other docs
Albert J. Wong593bb8622017-06-19 23:00:2085 * [Why we work on memory](https://docs.google.com/document/d/1jhERqimO-LtuplzQzbBv1vK7SVOh63AMf2irJI2LOqU/edit)
86 * [TOK/LON memory-dev@ meeting notes](https://docs.google.com/document/d/1tCTw9lnjs85t8GFiiyae2hbu6lrz8kysFCgMCKUvcXo/edit)
87 * [Memory convergence 3 (in Mountain View, 2017 May)](https://docs.google.com/document/d/1FBIqBGIa0DSaFsh-QjmVvoC82pGuOgiQDIhc8-vzXbQ/edit)
88 * [TRIM convergence 2 (in Mountain View, 2016 Nov)](https://docs.google.com/document/d/17Kef7UxjR6VW_ehVbsc-DI0IU7TQk-2C56JSbzbPuhA/edit)
89 * [TRIM convergence 1 (in Munich, 2016 Apr)](https://docs.google.com/document/d/1PGcM6iVBp0OYh3m8xGQhOgkQK0obQy8YWwoefP9NZCA/edit#)
Albert J. Wong2108fde2017-06-08 17:55:5090