OLD | NEW |
1 # MemoryInfra | 1 # MemoryInfra |
2 | 2 |
3 MemoryInfra is a timeline-based profiling system integrated in chrome://tracing. | 3 MemoryInfra is a timeline-based profiling system integrated in chrome://tracing. |
4 It aims at creating Chrome-scale memory measurement tooling so that on any | 4 It aims at creating Chrome-scale memory measurement tooling so that on any |
5 Chrome in the world --- desktop, mobile, Chrome OS or any other --- with the | 5 Chrome in the world --- desktop, mobile, Chrome OS or any other --- with the |
6 click of a button you can understand where memory is being used in your system. | 6 click of a button you can understand where memory is being used in your system. |
7 | 7 |
8 [TOC] | 8 [TOC] |
9 | 9 |
10 ## Getting Started | 10 ## Getting Started |
11 | 11 |
12 1. Get a bleeding-edge or tip-of-tree build of Chrome. | 12 1. Get a bleeding-edge or tip-of-tree build of Chrome. |
13 | 13 |
14 2. [Record a trace as usual][record-trace]: open [chrome://tracing][tracing] | 14 2. [Record a trace as usual][record-trace]: open [chrome://tracing][tracing] |
15 on Desktop Chrome or [chrome://inspect?tracing][inspect-tracing] to trace | 15 on Desktop Chrome or [chrome://inspect?tracing][inspect-tracing] to trace |
16 Chrome for Android. | 16 Chrome for Android. |
17 | 17 |
18 3. Make sure to enable the **memory-infra** category on the right. | 18 3. Make sure to enable the **memory-infra** category on the right. |
19 | 19 |
20 ![Tick the memory-infra checkbox when recording a trace.][memory-infra-box
] | 20 ![Tick the memory-infra checkbox when recording a trace.][memory-infra-box
] |
21 | 21 |
22 4. For now, some subsystems only work if Chrome is started with the | 22 4. For now, some subsystems only work if Chrome is started with the |
23 `--no-sandbox` flag. | 23 `--no-sandbox` flag. |
24 <!-- TODO(primiano) TODO(ssid): https://crbug.com/461788 --> | 24 <!-- TODO(primiano) TODO(ssid): https://crbug.com/461788 --> |
25 | 25 |
26 [record-trace]: https://sites.google.com/a/chromium.org/dev/developers/how-t
os/trace-event-profiling-tool/recording-tracing-runs | 26 [record-trace]: https://sites.google.com/a/chromium.org/dev/developers/how-t
os/trace-event-profiling-tool/recording-tracing-runs |
27 [tracing]: chrome://tracing | 27 [tracing]: chrome://tracing |
28 [inspect-tracing]: chrome://inspect?tracing | 28 [inspect-tracing]: chrome://inspect?tracing |
29 [memory-infra-box]: https://drive.google.com/uc?export=view&id=0Bx14iZPZRgb5RHBJ
M1llY1g4cDg | 29 [memory-infra-box]: https://storage.googleapis.com/chromium-docs.appspot.com/1c6
d1886584e7cc6ffed0d377f32023f8da53e02 |
30 | 30 |
31 ![Timeline View and Analysis View][tracing-views] | 31 ![Timeline View and Analysis View][tracing-views] |
32 | 32 |
33 After recording a trace, you will see the **timeline view**. Timeline view | 33 After recording a trace, you will see the **timeline view**. Timeline view |
34 shows: | 34 shows: |
35 | 35 |
36 * Total resident memory grouped by process (at the top). | 36 * Total resident memory grouped by process (at the top). |
37 * Total resident memory grouped by subsystem (at the top). | 37 * Total resident memory grouped by subsystem (at the top). |
38 * Allocated memory per subsystem for every process. | 38 * Allocated memory per subsystem for every process. |
39 | 39 |
40 Click one of the ![M][m-blue] dots to bring up the **analysis view**. Click | 40 Click one of the ![M][m-blue] dots to bring up the **analysis view**. Click |
41 on a cell in analysis view to reveal more information about its subsystem. | 41 on a cell in analysis view to reveal more information about its subsystem. |
42 PartitionAlloc for instance, has more details about its partitions. | 42 PartitionAlloc for instance, has more details about its partitions. |
43 | 43 |
44 ![Component details for PartitionAlloc][partalloc-details] | 44 ![Component details for PartitionAlloc][partalloc-details] |
45 | 45 |
46 The purple ![M][m-purple] dots represent heavy dumps. In these dumps, components | 46 The purple ![M][m-purple] dots represent heavy dumps. In these dumps, components |
47 can provide more details than in the regular dumps. The full details of the | 47 can provide more details than in the regular dumps. The full details of the |
48 MemoryInfra UI are explained in its [design doc][mi-ui-doc]. | 48 MemoryInfra UI are explained in its [design doc][mi-ui-doc]. |
49 | 49 |
50 [tracing-views]: https://drive.google.com/uc?export=view&id=0Bx14iZPZRgb5dFV
YV2dtZmNxQjg | 50 [tracing-views]: https://storage.googleapis.com/chromium-docs.appspot.com/db
12015bd262385f0f8bd69133330978a99da1ca |
51 [m-blue]: https://drive.google.com/uc?export=view&id=0Bx14iZPZRgb5b1Z
TcWY4em42a0U | 51 [m-blue]: https://storage.googleapis.com/chromium-docs.appspot.com/b6
0f342e38ff3a3767bbe4c8640d96a2d8bc864b |
52 [partalloc-details]: https://drive.google.com/uc?export=view&id=0Bx14iZPZRgb5eVp
PR09yTW9Ebjg | 52 [partalloc-details]: https://storage.googleapis.com/chromium-docs.appspot.com/02
eade61d57c83f8ef8227965513456555fc3324 |
53 [m-purple]: https://drive.google.com/uc?export=view&id=0Bx14iZPZRgb5RFF
Gc0xZZEJWVFk | 53 [m-purple]: https://storage.googleapis.com/chromium-docs.appspot.com/d7
bdf4d16204c293688be2e5a0bcb2bf463dbbc3 |
54 [mi-ui-doc]: https://docs.google.com/document/d/1b5BSBEd1oB-3zj_CBAQWiQZ
0cmI0HmjmXG-5iNveLqw/edit | 54 [mi-ui-doc]: https://docs.google.com/document/d/1b5BSBEd1oB-3zj_CBAQWiQZ
0cmI0HmjmXG-5iNveLqw/edit |
55 | 55 |
56 ## Columns | 56 ## Columns |
57 | 57 |
58 **Columns in blue** reflect the amount of actual physical memory used by the | 58 **Columns in blue** reflect the amount of actual physical memory used by the |
59 process. This is what exerts memory pressure on the system. | 59 process. This is what exerts memory pressure on the system. |
60 | 60 |
61 * **Total Resident**: (TODO: document this). | 61 * **Total Resident**: (TODO: document this). |
62 * **Peak Total Resident**: (TODO: document this). | 62 * **Peak Total Resident**: (TODO: document this). |
63 * **PSS**: (TODO: document this). | 63 * **PSS**: (TODO: document this). |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
159 | 159 |
160 Chrome-side design docs: | 160 Chrome-side design docs: |
161 | 161 |
162 <iframe width="100%" height="300px" src="https://docs.google.com/a/google.com/em
beddedfolderview?id=0B3KuDeqD-lVJfndSa2dleUQtMnZDeWpPZk1JV0QtbVM5STkwWms4YThzQ0p
GTmU1QU9kNVk"> | 162 <iframe width="100%" height="300px" src="https://docs.google.com/a/google.com/em
beddedfolderview?id=0B3KuDeqD-lVJfndSa2dleUQtMnZDeWpPZk1JV0QtbVM5STkwWms4YThzQ0p
GTmU1QU9kNVk"> |
163 </iframe> | 163 </iframe> |
164 | 164 |
165 Catapult-side design docs: | 165 Catapult-side design docs: |
166 | 166 |
167 <iframe width="100%" height="300px" src="https://docs.google.com/a/google.com/em
beddedfolderview?id=0B3KuDeqD-lVJfm10bXd5YmRNWUpKOElOWS0xdU1tMmV1S3F4aHo0ZDJLTmt
GRy1qVnQtVWM"> | 167 <iframe width="100%" height="300px" src="https://docs.google.com/a/google.com/em
beddedfolderview?id=0B3KuDeqD-lVJfm10bXd5YmRNWUpKOElOWS0xdU1tMmV1S3F4aHo0ZDJLTmt
GRy1qVnQtVWM"> |
168 </iframe> | 168 </iframe> |
OLD | NEW |