1 of 37

Speed Program 2017

rschoen@chromium.org, nduca@chromium.org

bit.ly/speed-program-2017

2 of 37

2016 Accomplishments

3 of 37

Background & offscreen throttling

4 of 37

Document.write intervention

Among the 6% of affected 2G page loads:

    • 10% increase in successful page loads
    • 35% reduction in median ParseStartToFirstContentfulPaint
    • 52% reduction in median parse duration
    • 7% decrease in page reloads

Across the entire web, 15% reduction in page loads attempting to insert parser-blocking script via document.write over a 3 month period

5 of 37

Desktop power reduction

6 of 37

Font glyph cache optimization

bit.ly/glyph-cache-optimization

7 of 37

Garbage collection during idle time

8 of 37

Intersection Observer

9 of 37

Lighthouse

10 of 37

11 of 37

Speedometer & script startup improvements

12 of 37

Partial tile redraw (& more!)

13 of 37

Passive event listeners

14 of 37

Performance Guided Optimization (PGO)

  • 14.8% improvement in NTP load time
  • 5.9% improvement in time to first paint
  • 16.8% improvement in startup time

15 of 37

Progressive Web Metrics

16 of 37

Simplified pages with Data Saver

17 of 37

Sustained Android memory reduction

Median memory usage on Android

18 of 37

19 of 37

2017 Challenges

& Opportunities

20 of 37

Windows

21 of 37

Mac

22 of 37

23 of 37

Android

...but especially memory and responsiveness.

24 of 37

Emerging Markets

25 of 37

Third-party content

ugh.

26 of 37

But how?!

27 of 37

28 of 37

29 of 37

The Chrome Speed Program

30 of 37

Speed

memory

power

performance

data usage

responsiveness

plt

rendering

fps

system health

31 of 37

Chrome-level 2017 goals

  1. Continue to understand our performance.
  2. Stop performance regressions from hitting our stable users.
  3. Build an architecture for Chrome Speed.

32 of 37

In other words...

Analytics

Operations

Architecture

33 of 37

Continue to understand our performance

  • We all use the same [great] metrics to evaluate impact�
  • Get breakdowns of all our metrics. And, do way deeper analysis!�
  • Make our real world data actionable

Analytics

34 of 37

Stop performance regressions

  • Audit and dramatically reduce the 224 unmaintained,�noisy benchmarks�
  • Perf waterfalls are constantly red. Fix that for good.�
  • Extend the Android System Health process into a Chrome-�wide Speed Releasing process across all platforms and all �key performance metrics.

Operations

35 of 37

Build an architecture for Chrome Speed

  • One way to measureme and coordinate�memory, CPU, net resources�
  • Fewer and more coherent architecture projects: we have 16�
  • Get some big wins for our users via making smart tradeoffs: memory for speed, etc

Architecture

36 of 37

Can these all become a "global resource coordinator"?

???

37 of 37

?