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 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 174 * **kind:** The kind of memory being reported. For metrics reported by | 174 * **kind:** The kind of memory being reported. For metrics reported by |
| 175 Chrome this usually is `effective_size` (others are `locked_size` | 175 Chrome this usually is `effective_size` (others are `locked_size` |
| 176 and `allocated_objects_size`); for metrics by the OS this usually is | 176 and `allocated_objects_size`); for metrics by the OS this usually is |
| 177 `proportional_resident_size` (others are `peak_resident_size` and | 177 `proportional_resident_size` (others are `peak_resident_size` and |
| 178 `private_dirty_size`). | 178 `private_dirty_size`). |
| 179 | 179 |
| 180 [memory-infra]: /memory-infra/README.md | 180 [memory-infra]: /memory-infra/README.md |
| 181 | 181 |
| 182 ## Appendix | 182 ## Appendix |
| 183 | 183 |
| 184 ### Other benchmarks | 184 There are a few other benchmarks maintained by the memory-infra team. |
| 185 These also use the same set of metrics as system health, but have differences | |
| 186 on the kind of stories that they run. | |
| 185 | 187 |
| 186 Other benchmarks maintained by the memory-infra team are: | 188 ### memory.top_10_mobile |
| 189 | |
| 190 The *top-10-mobile* benchmarks are in the process of being deprecated | |
| 191 in favor of system health benchmarks; but this process hasn't been finalized | |
| 192 yet. Therefore, **it's still important to diagnose and fix regressions | |
|
Primiano Tucci (use gerrit)
2017/01/17 12:15:48
I'd add, after "finalized yet", "and currently the
perezju
2017/01/17 16:32:33
Done.
| |
| 193 caught by these benchmarks**. | |
| 194 | |
| 195 * [memory.top_10_mobile][memory_py] - Cycle between: | |
| 196 | |
| 197 - load a page on Chrome, wait for it to load, force garbage collection, | |
|
Primiano Tucci (use gerrit)
2017/01/17 12:15:48
add also "simulate a memory pressure signal" (do I
perezju
2017/01/17 16:32:33
No. I added a link to the relevant piece of code.
| |
| 198 measure memory; | |
| 199 - push Chrome to the background, force garbage collection, measure memory. | |
| 200 | |
| 201 Repeat for each of 10 pages *without closing the browser*. | |
| 202 | |
| 203 Close the browser, re-open and repeat the full page set a total of 5 times. | |
| 204 | |
| 205 Story groups are either `foreground` or `background` depending on the state | |
| 206 of the browser at the time of measurement. | |
| 207 | |
| 208 * [memory.top_10_mobile_stress][memory_py] - same as above, but keeps a single | |
| 209 instance of the browser open for the whole duration of the test and | |
| 210 *does not* force any garbage collection. | |
| 211 | |
| 212 One of the main differences between to watch out between these and system | |
| 213 health benchmarks is that, since a single browser instance is kept open | |
| 214 between individual *stories*, the `--story-filter` argument may affect the | |
| 215 reproducibility of regressions. If you are having troubles reproducing a | |
|
Primiano Tucci (use gerrit)
2017/01/17 12:15:48
i'd just be stronger here and say: do not use --st
perezju
2017/01/17 16:32:33
Done. Rephrased this bit.
| |
| 216 regression, try removing this option. | |
| 217 | |
| 218 ### Dual browser benchmarks | |
| 219 | |
| 220 Dual browser benchmarks are intended to assess the memory implications of | |
| 221 shared resources between Chrome and WebView. | |
| 187 | 222 |
| 188 * [memory.dual_browser_test][memory_py] - cycle between doing Google searches | 223 * [memory.dual_browser_test][memory_py] - cycle between doing Google searches |
| 189 on a WebView-based browser (a stand-in for the Google Search app) and | 224 on a WebView-based browser (a stand-in for the Google Search app) and |
| 190 loading pages on Chrome. Runs on Android devices only. | 225 loading pages on Chrome. Runs on Android devices only. |
| 191 | 226 |
| 192 Story groups are either `on_chrome` or `on_webview`, indicating the browser | 227 Story groups are either `on_chrome` or `on_webview`, indicating the browser |
| 193 in foreground at the moment when the memory measurement was made. | 228 in foreground at the moment when the memory measurement was made. |
| 194 | 229 |
| 195 * [memory.long_running_dual_browser_test][memory_py] - same as above, but the | 230 * [memory.long_running_dual_browser_test][memory_py] - same as above, but the |
| 196 test is run for 60 iterations keeping both browsers alive for the whole | 231 test is run for 60 iterations keeping both browsers alive for the whole |
| 197 duration of the test and without forcing garbage collection. Intended as a | 232 duration of the test and without forcing garbage collection. Intended as a |
| 198 last-resort net to catch memory leaks not apparent on shorter tests. | 233 last-resort net to catch memory leaks not apparent on shorter tests. |
| 199 | 234 |
| 200 * [memory.top_10_mobile][memory_py] - cycle between loading a page on Chrome, | |
| 201 pushing the browser to the background, and then back to the foreground. | |
| 202 *(To be deprecated in favor of system_health.memory_mobile.)* | |
| 203 | |
| 204 Story groups are either `foreground` or `background` indicating the state | |
| 205 of the browser at the time of measurement. | |
| 206 | |
| 207 * [memory.top_10_mobile_stress][memory_py] - same as above, but keeps a single | |
| 208 instance of the browser open for 5 repetitions. *(To be deprecated.)* | |
| 209 | |
| 210 [memory_py]: https://chromium.googlesource.com/chromium/src/+/master/tools/perf/ benchmarks/memory.py | 235 [memory_py]: https://chromium.googlesource.com/chromium/src/+/master/tools/perf/ benchmarks/memory.py |
| OLD | NEW |