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 |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 non-Blink objects. | 86 non-Blink objects. |
87 * **PartitionAlloc**: Memory allocated via [PartitionAlloc][partalloc]. | 87 * **PartitionAlloc**: Memory allocated via [PartitionAlloc][partalloc]. |
88 Blink objects that are not managed by Oilpan are allocated with | 88 Blink objects that are not managed by Oilpan are allocated with |
89 PartitionAlloc. | 89 PartitionAlloc. |
90 * **Skia**: Memory used by all resources used by the Skia rendering system. | 90 * **Skia**: Memory used by all resources used by the Skia rendering system. |
91 * **SQLite**: Memory used for all sqlite databases. | 91 * **SQLite**: Memory used for all sqlite databases. |
92 * **Sync**: Memory used by Chrome Sync when signed in. | 92 * **Sync**: Memory used by Chrome Sync when signed in. |
93 * **UI**: Android only. Memory used by Android java bitmaps for the UI. | 93 * **UI**: Android only. Memory used by Android java bitmaps for the UI. |
94 * **V8**: Memory used by V8 Javascript engine. | 94 * **V8**: Memory used by V8 Javascript engine. |
95 * **Web Cache**: Memory used by resources downloaded from the Web, like images | 95 * **Web Cache**: Memory used by resources downloaded from the Web, like images |
96 and scipts. | 96 and scripts. |
97 | 97 |
98 The **tracing column in gray** reports memory that is used to collect all of the | 98 The **tracing column in gray** reports memory that is used to collect all of the |
99 above information. This memory would not be used if tracing were not enabled, | 99 above information. This memory would not be used if tracing were not enabled, |
100 and it is discounted from malloc and the blue columns. | 100 and it is discounted from malloc and the blue columns. |
101 | 101 |
102 <!-- TODO(primiano): Improve this. https://crbug.com/??? --> | 102 <!-- TODO(primiano): Improve this. https://crbug.com/??? --> |
103 | 103 |
104 [oilpan]: /third_party/WebKit/Source/platform/heap/BlinkGCDesign.md | 104 [oilpan]: /third_party/WebKit/Source/platform/heap/BlinkGCDesign.md |
105 [discardable]:base/memory/discardable_memory.h | 105 [discardable]:base/memory/discardable_memory.h |
106 [cc-memory]: probe-cc.md | 106 [cc-memory]: probe-cc.md |
107 [gpu-memory]: probe-gpu.md | 107 [gpu-memory]: probe-gpu.md |
108 [partalloc]: /base/allocator/partition_allocator/PartitionAlloc.md | 108 [partalloc]: /base/allocator/partition_allocator/PartitionAlloc.md |
109 | 109 |
| 110 ## 'effective\_size' vs. 'size' |
| 111 |
| 112 This is a little like the difference between 'self time' and 'cumulative time' |
| 113 in a profiling tool. Size is the total amount of memory allocated/requested |
| 114 by a subsystem whereas effective size is the total amount of memory |
| 115 used/consumed by a subsystem. If Skia allocates 10mb via partition_alloc |
| 116 that memory would show up in the size of both Skia and partition_alloc |
| 117 but only in the effective size of Skia since although partition_alloc |
| 118 allocates the 10mb it does so on behalf of Skia which is responsible |
| 119 for the memory. Summing all effective sizes gives the total amount of |
| 120 memory used whereas summing size would give a number larger than the total |
| 121 amount of memory used. |
| 122 |
110 ## Related Pages | 123 ## Related Pages |
111 | 124 |
112 * [Adding MemoryInfra Tracing to a Component](adding_memory_infra_tracing.md) | 125 * [Adding MemoryInfra Tracing to a Component](adding_memory_infra_tracing.md) |
113 * [GPU Memory Tracing](probe-gpu.md) | 126 * [GPU Memory Tracing](probe-gpu.md) |
114 * [Heap Profiler Internals](heap_profiler_internals.md) | 127 * [Heap Profiler Internals](heap_profiler_internals.md) |
115 * [Heap Profiling with MemoryInfra](heap_profiler.md) | 128 * [Heap Profiling with MemoryInfra](heap_profiler.md) |
116 * [Startup Tracing with MemoryInfra](memory_infra_startup_tracing.md) | 129 * [Startup Tracing with MemoryInfra](memory_infra_startup_tracing.md) |
117 | 130 |
118 ## Rationale | 131 ## Rationale |
119 | 132 |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
173 | 186 |
174 Chrome-side design docs: | 187 Chrome-side design docs: |
175 | 188 |
176 <iframe width="100%" height="300px" src="https://docs.google.com/a/google.com/em
beddedfolderview?id=0B3KuDeqD-lVJfndSa2dleUQtMnZDeWpPZk1JV0QtbVM5STkwWms4YThzQ0p
GTmU1QU9kNVk"> | 189 <iframe width="100%" height="300px" src="https://docs.google.com/a/google.com/em
beddedfolderview?id=0B3KuDeqD-lVJfndSa2dleUQtMnZDeWpPZk1JV0QtbVM5STkwWms4YThzQ0p
GTmU1QU9kNVk"> |
177 </iframe> | 190 </iframe> |
178 | 191 |
179 Catapult-side design docs: | 192 Catapult-side design docs: |
180 | 193 |
181 <iframe width="100%" height="300px" src="https://docs.google.com/a/google.com/em
beddedfolderview?id=0B3KuDeqD-lVJfm10bXd5YmRNWUpKOElOWS0xdU1tMmV1S3F4aHo0ZDJLTmt
GRy1qVnQtVWM"> | 194 <iframe width="100%" height="300px" src="https://docs.google.com/a/google.com/em
beddedfolderview?id=0B3KuDeqD-lVJfm10bXd5YmRNWUpKOElOWS0xdU1tMmV1S3F4aHo0ZDJLTmt
GRy1qVnQtVWM"> |
182 </iframe> | 195 </iframe> |
OLD | NEW |