Albert J. Wong | 2108fde | 2017-06-08 17:55:50 | [diff] [blame] | 1 | # Memory |
| 2 | |
Erik Chen | 34c0366e | 2017-11-29 15:47:52 | [diff] [blame] | 3 | Landing page for all things memory-related in Chromium. |
Albert J. Wong | 2108fde | 2017-06-08 17:55:50 | [diff] [blame] | 4 | |
Albert J. Wong | 2108fde | 2017-06-08 17:55:50 | [diff] [blame] | 5 | ## How is chrome's memory usage doing in the world? |
| 6 | |
Erik Chen | 34c0366e | 2017-11-29 15:47:52 | [diff] [blame] | 7 | Look at the UMAs **Memory.{Total,Renderer,Browser,Gpu,Extension}.PrivateMemoryFootprint**. |
Albert J. Wong | 2108fde | 2017-06-08 17:55:50 | [diff] [blame] | 8 | |
Albert J. Wong | 2108fde | 2017-06-08 17:55:50 | [diff] [blame] | 9 | ## How do developers communicate? |
| 10 | |
| 11 | Note, these channels are for developer coordination and NOT user support. If |
| 12 | you are a Chromium user experiencing a memory related problem, file a bug |
| 13 | instead. |
| 14 | |
| 15 | | name | description | |
| 16 | |------|-------------| |
| 17 | | [memory-dev@chromium.org]() | Discussion group for all things memory related. Post docs, discuss bugs, etc., here. | |
| 18 | | chrome-memory@google.com | Google internal version of the above. Use sparingly. | |
Erik Chen | a0222738 | 2019-08-21 01:46:35 | [diff] [blame] | 19 | | https://chromium.slack.com/messages/memory/ | Slack channel for real-time discussion with memory devs. Lots of C++ sadness too. | |
Albert J. Wong | 2108fde | 2017-06-08 17:55:50 | [diff] [blame] | 20 | | 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. | |
| 21 | | crbug [Stability=Memory](https://bugs.chromium.org/p/chromium/issues/list?can=2&q=Stability%3DMemory) label | Tracks mostly OOM crashes. | |
| 22 | |
Erik Chen | 8f908e2 | 2018-02-26 16:06:58 | [diff] [blame] | 23 | ## I have memory problem, what do I do? |
| 24 | |
| 25 | Follow [these instructions](/docs/memory/filing_memory_bugs.md) to file a high |
| 26 | quality bug. |
| 27 | |
Erik Chen | e052535 | 2018-03-02 16:23:20 | [diff] [blame] | 28 | ## I'm a developer trying to investigate a memory issues, what do I do? |
Albert J. Wong | 2108fde | 2017-06-08 17:55:50 | [diff] [blame] | 29 | |
Erik Chen | e052535 | 2018-03-02 16:23:20 | [diff] [blame] | 30 | See [this page](/docs/memory/debugging_memory_issues.md) for further instructions. |
Albert J. Wong | 2108fde | 2017-06-08 17:55:50 | [diff] [blame] | 31 | |
Erik Chen | e052535 | 2018-03-02 16:23:20 | [diff] [blame] | 32 | ## I'm a developer looking for more information. How do I get started? |
Albert J. Wong | 2108fde | 2017-06-08 17:55:50 | [diff] [blame] | 33 | |
| 34 | Great! First, sign up for the mailing lists above and check out the slack channel. |
| 35 | |
| 36 | Second, familiarize yourself with the following: |
| 37 | |
| 38 | | Topic | Description | |
| 39 | |-------|-------------| |
Primiano Tucci | fb7942c | 2017-06-26 16:06:19 | [diff] [blame] | 40 | | [Key Concepts in Chrome Memory](/docs/memory/key_concepts.md) | Primer for memory terminology in Chrome. | |
| 41 | | [memory-infra](/docs/memory-infra/README.md) | The primary tool used for inspecting allocations. | |
Albert J. Wong | 2108fde | 2017-06-08 17:55:50 | [diff] [blame] | 42 | |
Albert J. Wong | 2108fde | 2017-06-08 17:55:50 | [diff] [blame] | 43 | ## What are people actively working on? |
Erik Chen | a0222738 | 2019-08-21 01:46:35 | [diff] [blame] | 44 | |
| 45 | There are roughly three types of memory work within Chrome: |
| 46 | |
| 47 | * Team based, targeted improvements. Examples include: |
Thiabaud Engelbrecht | 6d44361 | 2022-02-11 00:22:18 | [diff] [blame] | 48 | * memory reductions for specific components [e.g. for v8] |
| 49 | * allocator improvements [e.g. PartitionAlloc] |
Erik Chen | a0222738 | 2019-08-21 01:46:35 | [diff] [blame] | 50 | * memory purging at appropriate times [e.g. on tab background] |
| 51 | * better memory pressure signals |
| 52 | * Memlog: Heap profiling in the wild for regression detection + root cause |
| 53 | analysis. |
| 54 | * Lab tests: Perf waterfall for micro-regressions, ASAN/MSAN/LSAN, blink leak |
| 55 | detector. |
Albert J. Wong | 2108fde | 2017-06-08 17:55:50 | [diff] [blame] | 56 | |
| 57 | |
| 58 | ## Key knowledge areas and contacts |
| 59 | | Knowledge Area | Contact points | |
| 60 | |----------------|----------------| |
Egor Pasko | e3f68e3b | 2018-06-20 11:00:06 | [diff] [blame] | 61 | | Chrome on Android | lizeb, pasko, ssid | |
| 62 | | Browser Process | ssid, erikchen, etienneb | |
Albert J. Wong | 2108fde | 2017-06-08 17:55:50 | [diff] [blame] | 63 | | GPU/cc | ericrk | |
Egor Pasko | e3f68e3b | 2018-06-20 11:00:06 | [diff] [blame] | 64 | | Memory metrics | ssid, erikchen, primano, ajwong, wez | |
Erik Chen | a0222738 | 2019-08-21 01:46:35 | [diff] [blame] | 65 | | Heap Profiling | alph, erikchen, ssid, etienneb | |
Albert J. Wong | 2108fde | 2017-06-08 17:55:50 | [diff] [blame] | 66 | | Net Stack | mmenke, rsleevi, xunjieli | |
| 67 | | Renderer Process | haraken, tasak, hajimehoshi, keishi, hiroshige | |
| 68 | | V8 | hpayer, ulan, verwaest, mlippautz | |
| 69 | |
| 70 | |
| 71 | ## Other docs |
Albert J. Wong | 593bb862 | 2017-06-19 23:00:20 | [diff] [blame] | 72 | * [Why we work on memory](https://docs.google.com/document/d/1jhERqimO-LtuplzQzbBv1vK7SVOh63AMf2irJI2LOqU/edit) |
| 73 | * [TOK/LON memory-dev@ meeting notes](https://docs.google.com/document/d/1tCTw9lnjs85t8GFiiyae2hbu6lrz8kysFCgMCKUvcXo/edit) |
| 74 | * [Memory convergence 3 (in Mountain View, 2017 May)](https://docs.google.com/document/d/1FBIqBGIa0DSaFsh-QjmVvoC82pGuOgiQDIhc8-vzXbQ/edit) |
| 75 | * [TRIM convergence 2 (in Mountain View, 2016 Nov)](https://docs.google.com/document/d/17Kef7UxjR6VW_ehVbsc-DI0IU7TQk-2C56JSbzbPuhA/edit) |
| 76 | * [TRIM convergence 1 (in Munich, 2016 Apr)](https://docs.google.com/document/d/1PGcM6iVBp0OYh3m8xGQhOgkQK0obQy8YWwoefP9NZCA/edit#) |
Albert J. Wong | 2108fde | 2017-06-08 17:55:50 | [diff] [blame] | 77 | |