diff options
Diffstat (limited to 'chromium/docs/website/site/developers/page-sets-and-benchmarks/index.md')
-rw-r--r-- | chromium/docs/website/site/developers/page-sets-and-benchmarks/index.md | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/chromium/docs/website/site/developers/page-sets-and-benchmarks/index.md b/chromium/docs/website/site/developers/page-sets-and-benchmarks/index.md deleted file mode 100644 index 69ed4105c9c..00000000000 --- a/chromium/docs/website/site/developers/page-sets-and-benchmarks/index.md +++ /dev/null @@ -1,130 +0,0 @@ ---- -breadcrumbs: -- - /developers - - For Developers -page_name: page-sets-and-benchmarks -title: Benchmarks == Measurements + Page Set ---- - -## Overview - -Telemetry is opinionated in what a benchmark is. A benchmark is: - -* A PageMeasurement, which is a canned way to measure an arbitrary - page. The measurement really should work for any page. - Good: Number of DOM Nodes in a Page - Bad: Number of DOM Nodes in Gmail -* A page set, which is a list of pages your PM is interested in - Good: top 25 websites. The 10 most interesting ways users use our webapp - Bad: page set for measuring memory, another page set for measuring scrolling - -Here's why you care: - -* Writing a good measurement is really hard, and Chrome has a bunch in - tools/perf/ that are all-ready-to-go! -* Once you can measure a page, you'll often want to track more pages - just like that. And each page you try to add is going to have corner - cases. And quirks. A request will come in for A/B tests. Pretty - soon, you'll have your original measurement hacked up with tons of - special cases to handle all your app's different use cases. This is - cray! -* A page set is a product-level idea. PMs know what use cases are - important for the product. Have them maintain the list of use cases - as a page set. -* The measurement is a code level idea. Given a given page, the - measurement should evaluate how well you did. Engineers are good - maintainers of a measurement class. - -# Check out tools/perf/page_sets/top_25 for examples of page sets. - -# ## An Example - -## Lets say my users often go to a specific page, click a button, and ==scroll== a div that shows up. I could measure any number of things: - -* How long it takes to go to that URL in a fresh tab until the div is - up -* How smoothly I can scroll the div -* How much time I spend in key WebKit systems: javascript, style, - layout, paint, compositing -* How much the memory footprint varies as I scroll the div -* How much time I spend decoding images, and painting the page - -Those are measurements. tools/perf has many measurements. **THINK TWICE BEFORE -YOU WRITE ANOTHER MEASUREMENT.** There probably is one already. - -**Most telemetry users should be putting their effort into writing page sets.** -In this example, the page set isn't going to be "the page set for measuring this -specific url and how well it scrolls." Its going to be "the page sets for my -application," and since I have only one use case right now, it will be: - -> {description: "my teams pages that are worth benchmarking", - -> pages: \[ - -> { - -> "url": "my page's url", - -> "smoothness": \[ - -> {action: click_element, selector: "#show-dialog"}, - -> {action: scroll, selector: "#dialog > #dialog-contents"} - -> \] - -> } - -> } - -Now if I wanted to measure the smoothness of this use case: - -> ./tools/perf/run_multipage_benchmark smoothness_benchmark my_team.json - -Suppose now you also want to test the perf of your main page without that dialog -showing. Ugh, write another benchmark? Not so much... just add another page: - -> { - -> "url": "my page's url", - -> "smoothness": \[ - -> {action: scroll, selector: "body"} - -> \] - -> } - -And maybe I want to monitor memory for that page, by clicking a compose button -10 times. Again, thats not a benchmark, its just another entry in yoru page. - -> { - -> "url": "my page's url", - -> "smoothness": \[ - -> {action: scroll, selector: "body"} - -> \], - -> "stress_memory": \[ - -> {action: repeat, times: 10, - -> repeat: \[ - -> {"action": click_element, selector: compose}, - -> {"action": "click_element", selector: "#discard"} - -> \] - -> \] - -> } - -Voila. Now we just: - -> ./tools/perf/run_multipage_benchmark memory_benchmark my_team.json
\ No newline at end of file |