OLD | NEW |
---|---|
1 # Memory Benchmarks | 1 # Memory Benchmarks |
2 | 2 |
3 This document describes benchmarks available to track Chrome's and | 3 This document describes benchmarks available to track Chrome's and |
4 WebView's memory usage, where they live, what they measure, how to run them, | 4 WebView's memory usage, where they live, what they measure, how to run them, |
5 and on how to diagnose regressions. | 5 and on how to diagnose regressions. |
6 | 6 |
7 [TOC] | 7 [TOC] |
8 | 8 |
9 ## Glossary | 9 ## Glossary |
10 | 10 |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
85 | 85 |
86 * **Test suite:** The name of a *[benchmark](#Benchmarks)*. | 86 * **Test suite:** The name of a *[benchmark](#Benchmarks)*. |
87 * **Bot:** The name of a *platform or device configuration*. Sign in to also | 87 * **Bot:** The name of a *platform or device configuration*. Sign in to also |
88 see internal bots. | 88 see internal bots. |
89 * **Subtest (1):** The name of a *[metric](#Understanding-memory-metrics)*. | 89 * **Subtest (1):** The name of a *[metric](#Understanding-memory-metrics)*. |
90 * **Subtest (2):** The name of a *story group*; these have the form | 90 * **Subtest (2):** The name of a *story group*; these have the form |
91 `{interaction}_{category}` for system health stories. | 91 `{interaction}_{category}` for system health stories. |
92 * **Subtest (3):** The name of a *[user story](#User-stories)* | 92 * **Subtest (3):** The name of a *[user story](#User-stories)* |
93 (with `:` replaced by `_`). | 93 (with `:` replaced by `_`). |
94 | 94 |
95 If you are investigating a Perf dashboard alert and would like to see the | |
96 details, you can click on any point of the graph. It gives you the commit range, | |
97 buildbot output and a link to the trace file taken during the buildbot run. | |
98 | |
99 ![Chrome Performance Dashboard Alert](https://storage.googleapis.com/chromium-do cs.appspot.com/perfdashboard_alert.png) | |
xunjieli
2017/06/22 15:55:14
Primiano: should I rename the filename to contain
Primiano Tucci (use gerrit)
2017/06/23 08:53:41
Doesn't really matter. I think those hashes came f
xunjieli
2017/06/23 12:51:28
Acknowledged. Got it. Thank you.
| |
100 | |
95 ## How to run the benchmarks | 101 ## How to run the benchmarks |
96 | 102 |
97 Benchmarks may be run on a local platform/device or remotely on a try job. | 103 Benchmarks may be run on a local platform/device or remotely on a try job. |
98 | 104 |
99 ### How to run locally | 105 ### How to run locally |
100 | 106 |
101 After building, e.g. `ChromePublic.apk`, you can run a specific system health | 107 After building, e.g. `ChromePublic.apk`, you can run a specific system health |
102 story with the command: | 108 story with the command: |
103 | 109 |
104 ``` | 110 ``` |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
163 Most memory metrics have the form | 169 Most memory metrics have the form |
164 `memory:{browser}:{processes}:{source}:{component}:{kind}` | 170 `memory:{browser}:{processes}:{source}:{component}:{kind}` |
165 where: | 171 where: |
166 | 172 |
167 * **browser:** One of `chrome` or `webview`. | 173 * **browser:** One of `chrome` or `webview`. |
168 * **processess:** One of `browser_process`, `renderer_processess`, | 174 * **processess:** One of `browser_process`, `renderer_processess`, |
169 `gpu_process`, or `all_processess`. | 175 `gpu_process`, or `all_processess`. |
170 * **source:** One of `reported_by_chrome` or `reported_by_os` | 176 * **source:** One of `reported_by_chrome` or `reported_by_os` |
171 * **component:** May be a Chrome component, e.g. `skia` or `sqlite`; | 177 * **component:** May be a Chrome component, e.g. `skia` or `sqlite`; |
172 details about a specific component, e.g. `v8:heap`; or a class of memory | 178 details about a specific component, e.g. `v8:heap`; or a class of memory |
173 as seen by the OS, e.g. `system_memory:native_heap` or `gpu_memory`. | 179 as seen by the OS, e.g. `system_memory:native_heap` or `gpu_memory`. If |
180 reported by chrome, the metrics are gathered by `MemoryDumpProvider`s, | |
181 probes placed in the specific components' codebase. For example, in | |
182 "memory:chrome:all_processes:reported_by_chrome:net:effective_size_avg," | |
183 the component is "net" which is Chrome's network stack and | |
184 "reported_by_chrome" means that this metric is gathered via probes in | |
185 the network stack. | |
174 * **kind:** The kind of memory being reported. For metrics reported by | 186 * **kind:** The kind of memory being reported. For metrics reported by |
175 Chrome this usually is `effective_size` (others are `locked_size` | 187 Chrome this usually is `effective_size` (others are `locked_size` |
176 and `allocated_objects_size`); for metrics by the OS this usually is | 188 and `allocated_objects_size`); for metrics by the OS this usually is |
177 `proportional_resident_size` (others are `peak_resident_size` and | 189 `proportional_resident_size` (others are `peak_resident_size` and |
178 `private_dirty_size`). | 190 `private_dirty_size`). |
179 | 191 |
180 [memory-infra]: /memory-infra/README.md | 192 [memory-infra]: /memory-infra/README.md |
181 | 193 |
182 ## Appendix | 194 ## Appendix |
183 | 195 |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
229 | 241 |
230 Story groups are either `on_chrome` or `on_webview`, indicating the browser | 242 Story groups are either `on_chrome` or `on_webview`, indicating the browser |
231 in foreground at the moment when the memory measurement was made. | 243 in foreground at the moment when the memory measurement was made. |
232 | 244 |
233 * [memory.long_running_dual_browser_test][memory_extra_py] - same as above, | 245 * [memory.long_running_dual_browser_test][memory_extra_py] - same as above, |
234 but the test is run for 60 iterations keeping both browsers alive for the | 246 but the test is run for 60 iterations keeping both browsers alive for the |
235 whole duration of the test and without forcing garbage collection. Intended | 247 whole duration of the test and without forcing garbage collection. Intended |
236 as a last-resort net to catch memory leaks not apparent on shorter tests. | 248 as a last-resort net to catch memory leaks not apparent on shorter tests. |
237 | 249 |
238 [memory_extra_py]: https://cs.chromium.org/chromium/src/tools/perf/contrib/memor y_extras/memory_extras.py | 250 [memory_extra_py]: https://cs.chromium.org/chromium/src/tools/perf/contrib/memor y_extras/memory_extras.py |
OLD | NEW |