OLD | NEW |
1 # Memory Usage in CC | 1 # Memory Usage in CC |
2 | 2 |
3 This document gives an overview of memory usage in the CC component, as well as | 3 This document gives an overview of memory usage in the CC component, as well as |
4 information on how to analyze that memory. | 4 information on how to analyze that memory. |
5 | 5 |
6 [TOC] | 6 [TOC] |
7 | 7 |
8 ## Types of Memory in Use | 8 ## Types of Memory in Use |
9 | 9 |
10 CC uses a number of types of memory: | 10 CC uses a number of types of memory: |
(...skipping 25 matching lines...) Loading... |
36 size will be attributed to cc/tile_memory (effective_size of cc/resource_memory | 36 size will be attributed to cc/tile_memory (effective_size of cc/resource_memory |
37 will not include these resources). | 37 will not include these resources). |
38 | 38 |
39 If the one-copy tile update path is in use, the cc category will also enumerate | 39 If the one-copy tile update path is in use, the cc category will also enumerate |
40 staging resources used as intermediates when drawing tiles. These resources are | 40 staging resources used as intermediates when drawing tiles. These resources are |
41 like tile_memory, in that they are shared with cc/resource_memory. | 41 like tile_memory, in that they are shared with cc/resource_memory. |
42 | 42 |
43 Note that depending on the path being used, CC memory may be either shared | 43 Note that depending on the path being used, CC memory may be either shared |
44 memory or GPU memory: | 44 memory or GPU memory: |
45 | 45 |
| 46 ``` |
46 Path | Tile Memory Type | Staging Memory Type | 47 Path | Tile Memory Type | Staging Memory Type |
47 -------------|------------------------------------------- | 48 -------------|------------------------------------------- |
48 Bitmap | Shared Memory | N/A | 49 Bitmap | Shared Memory | N/A |
49 One Copy | GPU Memory | Shared Memory | 50 One Copy | GPU Memory | Shared Memory |
50 Zero Copy | GPU or Shared Memory | N/A | 51 Zero Copy | GPU or Shared Memory | N/A |
51 GPU | GPU Memory | N/A | 52 GPU | GPU Memory | N/A |
| 53 ``` |
52 | 54 |
53 Note that these values can be determined from a memory-infra dump. For a given | 55 Note that these values can be determined from a memory-infra dump. For a given |
54 resource, hover over the small green arrow next to it's "size". This will show | 56 resource, hover over the small green arrow next to it's "size". This will show |
55 the other allocations that this resource is aliased with. If you see an | 57 the other allocations that this resource is aliased with. If you see an |
56 allocation in the GPU process, the memory is generally GPU memory. Otherwise, | 58 allocation in the GPU process, the memory is generally GPU memory. Otherwise, |
57 the resource is typically Shared Memory. | 59 the resource is typically Shared Memory. |
58 | 60 |
59 Tile and Staging memory managers are set up to evict any resource not used | 61 Tile and Staging memory managers are set up to evict any resource not used |
60 within 1s. | 62 within 1s. |
61 | 63 |
(...skipping 54 matching lines...) Loading... |
116 Shared Memory GpuMemoryBuffer objects are allocated by the browser and will | 118 Shared Memory GpuMemoryBuffer objects are allocated by the browser and will |
117 also tracked in this category. | 119 also tracked in this category. |
118 | 120 |
119 ## Memory TODOs | 121 ## Memory TODOs |
120 | 122 |
121 The following areas have insufficient memory instrumentation. | 123 The following areas have insufficient memory instrumentation. |
122 | 124 |
123 1. DisplayLists - DisplayLists can be quite large and are currently | 125 1. DisplayLists - DisplayLists can be quite large and are currently |
124 un-instrumented. These use malloc memory and currently contribute to | 126 un-instrumented. These use malloc memory and currently contribute to |
125 malloc/allocated_objects/<unspecified>. [BUG](https://crbug.com/567465) | 127 malloc/allocated_objects/<unspecified>. [BUG](https://crbug.com/567465) |
OLD | NEW |