Chromium Code Reviews| 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  | |
|
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 |