@dom_walden suggested we pair on investigating Performance/Synthetic testing and Performance/Fresnel. We decided to spend some time with Fresnel.
We found a recent commit in core (760992) with fresnel job (50232).
We looked at trace in Chrome.
We ran the tests locally.
| 1 | ~/Documents/gerrit/mediawiki/core$ fresnel compare "before" "after" |
|---|---|
| 2 | |
| 3 | |
| 4 | ### scenario Read a page |
| 5 | |----------------------------------------------------------|---------------------|---------------------|---------|--| |
| 6 | | Metric | Before | After | Diff | | |
| 7 | |----------------------------------------------------------|---------------------|---------------------|---------|--| |
| 8 | | navtiming: | | | | | |
| 9 | | Time to first byte (responseStart) | 295 ms (± 37 ms) | 350 ms (± 87 ms) | 0 ms | | |
| 10 | | Total page load time (loadEventEnd) | 1.300 s (± 66 ms) | 1.132 s (± 118 ms) | 0 ms | | |
| 11 | | Time from responseEnd to domComplete (processing) | 708 ms (± 47 ms) | 781 ms (± 76 ms) | 0 ms | | |
| 12 | | Time from loadEventStart to loadEventEnd (onLoad) | <0.1 ms (± <0.1 ms) | <0.1 ms (± <0.1 ms) | 0 ms | | |
| 13 | | paint: | | | | | |
| 14 | | Time to first paint (TTFP) | 627 ms (± 58 ms) | 731 ms (± 125 ms) | P 0.973 | | |
| 15 | | Total to first contentful paint (TTFCP) | 627 ms (± 58 ms) | 731 ms (± 125 ms) | P 0.973 | | |
| 16 | | transfer: | | | | | |
| 17 | | Total size of transfers during page load (pageWeight) | 129 kB (± 15 B) | 129 kB (± 8 B) | 0 B | | |
| 18 | | Transfer size of HTML document (html) | 5.1 kB (± <0.9 B) | 5.1 kB (± <0.8 B) | 0 B | | |
| 19 | | Transfer size of CSS resources (css) | 7.9 kB (± 0 B) | 7.9 kB (± 0 B) | 0 B | | |
| 20 | | Transfer size of JavaScript resources (js) | 86.9 kB (± 6 B) | 86.9 kB (± 4 B) | 0 B | | |
| 21 | | Transfer size of Image document (img) | 28.9 kB (± 10 B) | 28.9 kB (± 8 B) | 0 B | | |
| 22 | | Transfer size of other resources (other) | 0 B (± 0 B) | 0 B (± 0 B) | 0 B | | |
| 23 | |----------------------------------------------------------|---------------------|---------------------|---------|--| |
| 24 | |
| 25 | |
| 26 | ### scenario Load the editor |
| 27 | |----------------------------------------------------------|---------------------|---------------------|---------|--| |
| 28 | | Metric | Before | After | Diff | | |
| 29 | |----------------------------------------------------------|---------------------|---------------------|---------|--| |
| 30 | | navtiming: | | | | | |
| 31 | | Time to first byte (responseStart) | 385 ms (± 69 ms) | 350 ms (± 37 ms) | 0 ms | | |
| 32 | | Total page load time (loadEventEnd) | 1.260 s (± 60 ms) | 1.194 s (± 54 ms) | 0 ms | | |
| 33 | | Time from responseEnd to domComplete (processing) | 873 ms (± 71 ms) | 843 ms (± 35 ms) | 0 ms | | |
| 34 | | Time from loadEventStart to loadEventEnd (onLoad) | <0.1 ms (± <0.1 ms) | <0.1 ms (± <0.1 ms) | 0 ms | | |
| 35 | | paint: | | | | | |
| 36 | | Time to first paint (TTFP) | 920 ms (± 54 ms) | 847 ms (± 62 ms) | P 0.015 | | |
| 37 | | Total to first contentful paint (TTFCP) | 920 ms (± 54 ms) | 847 ms (± 62 ms) | P 0.015 | | |
| 38 | | transfer: | | | | | |
| 39 | | Total size of transfers during page load (pageWeight) | 186 kB (± 12 B) | 186 kB (± 12 B) | 0 B | | |
| 40 | | Transfer size of HTML document (html) | 6.6 kB (± 1 B) | 6.6 kB (± 2 B) | 0 B | | |
| 41 | | Transfer size of CSS resources (css) | 17.8 kB (± 0 B) | 17.8 kB (± 0 B) | 0 B | | |
| 42 | | Transfer size of JavaScript resources (js) | 133 kB (± 5 B) | 133 kB (± 2 B) | 0 B | | |
| 43 | | Transfer size of Image document (img) | 27.7 kB (± 11 B) | 27.7 kB (± 10 B) | 0 B | | |
| 44 | | Transfer size of other resources (other) | 0 B (± 0 B) | 0 B (± 0 B) | 0 B | | |
| 45 | |----------------------------------------------------------|---------------------|---------------------|---------|--| |
| 46 | |
| 47 | |
| 48 | ### scenario View history of a page |
| 49 | |----------------------------------------------------------|---------------------|---------------------|---------|--| |
| 50 | | Metric | Before | After | Diff | | |
| 51 | |----------------------------------------------------------|---------------------|---------------------|---------|--| |
| 52 | | navtiming: | | | | | |
| 53 | | Time to first byte (responseStart) | 546 ms (± 369 ms) | 361 ms (± 52 ms) | 0 ms | | |
| 54 | | Total page load time (loadEventEnd) | 2.800 s (± 550 ms) | 1.418 s (± 92 ms) | - 20 ms | | |
| 55 | | Time from responseEnd to domComplete (processing) | 1.533 s (± 491 ms) | 1.510 s (± 65 ms) | 0 ms | | |
| 56 | | Time from loadEventStart to loadEventEnd (onLoad) | <0.1 ms (± <0.1 ms) | <0.1 ms (± <0.1 ms) | 0 ms | | |
| 57 | | paint: | | | | | |
| 58 | | Time to first paint (TTFP) | 1.440 s (± 510 ms) | 966 ms (± 86 ms) | P 0.002 | | |
| 59 | | Total to first contentful paint (TTFCP) | 1.440 s (± 510 ms) | 966 ms (± 86 ms) | P 0.002 | | |
| 60 | | transfer: | | | | | |
| 61 | | Total size of transfers during page load (pageWeight) | 242 kB (± 17 B) | 242 kB (± 11 B) | 0 B | | |
| 62 | | Transfer size of HTML document (html) | 6.6 kB (± 2 B) | 6.6 kB (± 1 B) | 0 B | | |
| 63 | | Transfer size of CSS resources (css) | 20.0 kB (± 0 B) | 20.0 kB (± 0 B) | 0 B | | |
| 64 | | Transfer size of JavaScript resources (js) | 185 kB (± 7 B) | 185 kB (± 3 B) | 0 B | | |
| 65 | | Transfer size of Image document (img) | 30.6 kB (± 11 B) | 30.6 kB (± 10 B) | 0 B | | |
| 66 | | Transfer size of other resources (other) | 0 B (± 0 B) | 0 B (± 0 B) | 0 B | | |
| 67 | |----------------------------------------------------------|---------------------|---------------------|---------|--| |
| 68 | |
| 69 | |
| 70 | ### scenario View recent changes |
| 71 | |----------------------------------------------------------|---------------------|---------------------|---------|--| |
| 72 | | Metric | Before | After | Diff | | |
| 73 | |----------------------------------------------------------|---------------------|---------------------|---------|--| |
| 74 | | navtiming: | | | | | |
| 75 | | Time to first byte (responseStart) | 593 ms (± 145 ms) | 491 ms (± 41 ms) | 0 ms | | |
| 76 | | Total page load time (loadEventEnd) | 2.426 s (± 361 ms) | 2.660 s (± 122 ms) | 0 ms | | |
| 77 | | Time from responseEnd to domComplete (processing) | 1.829 s (± 230 ms) | 1.574 s (± 101 ms) | 0 ms | | |
| 78 | | Time from loadEventStart to loadEventEnd (onLoad) | <0.1 ms (± <0.1 ms) | <0.1 ms (± <0.1 ms) | 0 ms | | |
| 79 | | paint: | | | | | |
| 80 | | Time to first paint (TTFP) | 1.154 s (± 231 ms) | 917 ms (± 84 ms) | P 0.005 | | |
| 81 | | Total to first contentful paint (TTFCP) | 1.154 s (± 231 ms) | 917 ms (± 84 ms) | P 0.005 | | |
| 82 | | transfer: | | | | | |
| 83 | | Total size of transfers during page load (pageWeight) | 272 kB (± 21 B) | 272 kB (± 20 B) | 0 B | | |
| 84 | | Transfer size of HTML document (html) | 10.0 kB (± <0.8 B) | 10.0 kB (± 1 B) | 0 B | | |
| 85 | | Transfer size of CSS resources (css) | 9.7 kB (± 2 B) | 9.7 kB (± 0 B) | 0 B | | |
| 86 | | Transfer size of JavaScript resources (js) | 221 kB (± 3 B) | 221 kB (± 6 B) | 0 B | | |
| 87 | | Transfer size of Image document (img) | 30.6 kB (± 19 B) | 30.6 kB (± 16 B) | 0 B | | |
| 88 | | Transfer size of other resources (other) | 0 B (± 0 B) | 0 B (± 0 B) | 0 B | | |
| 89 | |----------------------------------------------------------|---------------------|---------------------|---------|--| |
Links:
- Gerrit
- Phabricator
- npm
TODO
- report documentation bug, broken link at https://gerrit.wikimedia.org/r/plugins/gitiles/performance/fresnel/
