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 |