Top Banner
Optimizing Browser experience focusing on Mobile MATE NADASDI @matenadasdi
18

Optimizing browser experience - App!mobile 2013 conf

May 06, 2015

Download

Technology

Máté Nádasdi

Optimizing browser experience focusing on Mobile on HWSW App!mobile 2013 Conference
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Optimizing browser experience - App!mobile 2013 conf

Optimizing Browser experience focusing on Mobile

M AT E N A D A S D I@matenadasdi

Page 2: Optimizing browser experience - App!mobile 2013 conf

• Every second = 0.65% increase in bounce rate

• Facebook 60FPS - 30FPS timeline experiment (lower engagement)

• 86% of the user waiting time spent on client side

Perf matters

Page load speed on the globe

Page 3: Optimizing browser experience - App!mobile 2013 conf

• 3G/4G vs Cable/Fiber

• Latency is higher (18ms - 26ms - 43ms - 150ms - 400ms)

• Radio Resource Controller is in the game

• Touch events - Software & Hardware input latency

• Users expects the same speed as desktop

Some facts about Mobile vs Desktop perf

Page 4: Optimizing browser experience - App!mobile 2013 conf

1000ms - Show usable content to the user

16.6ms - Deliver a frame to go for 60FPS

Memorize 2 numbers

Page 5: Optimizing browser experience - App!mobile 2013 conf

DNS lookup TCP connect Handshake HTTP Request Download …

Networking

Page 6: Optimizing browser experience - App!mobile 2013 conf

• 69,5% of time block on networking (Top 1 Million Alexa sites)

• DNS lookups and TCP connects are expensive

• DNS prefetch, Prefetch, Prerender

• Compress, Sprite images, count on TCP Slow Start

• Mobile radio is one of the most battery killer resources.

Networking

Page 7: Optimizing browser experience - App!mobile 2013 conf

DOMRender tree Layout Render into layers

Response parsing

CSSOM

Transfer to GPU Rock&Roll!

Page 8: Optimizing browser experience - App!mobile 2013 conf

Initial rendering tips

• Inline critical JS/CSS, lazy load others

• Do not load resources required for below the fold experience

• Use deferred, async JS to save page load time

• Remember! CSS is not incremental.

Page 9: Optimizing browser experience - App!mobile 2013 conf

Pagespeed insights (https://developers.google.com/speed/pagespeed/insights/)

!

Measure, Analyze, Optimize!

Page 10: Optimizing browser experience - App!mobile 2013 conf

webpagetest.org API/Docs: https://sites.google.com/a/webpagetest.org/docs/

!

Measure, Analyze, Optimize!

Page 11: Optimizing browser experience - App!mobile 2013 conf

DevTools timeline panel - https://developers.google.com/chrome-developer-tools/docs/timeline

!!

Measure, Analyze, Optimize!

Page 12: Optimizing browser experience - App!mobile 2013 conf

Navigation Timing API

https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html

!!

Measure, Analyze, Optimize!

Page 13: Optimizing browser experience - App!mobile 2013 conf

• We need 60fps for jank free rendering

• 16.6ms is not so much time for layout/paint/JS/GC

• Touch handlers can block the GPU Compositing on mobile

• Scroll handler functions have to finish in this range too

In-App rendering

Page 14: Optimizing browser experience - App!mobile 2013 conf

• Try to modify smaller subtrees in the Render Tree

• Animate props which affect compositing only (transform/opacity)

• Avoid setTimeout, use requestAnimationFrame

• Bind handlers close to the target

• Image resizing in the browser is evil!

• Dedicate layers for the most expensive parts.

Rendering Tips

Page 15: Optimizing browser experience - App!mobile 2013 conf

DevTools timeline frames panel http://www.html5rocks.com/en/tutorials/speed/high-performance-animations/

https://developers.google.com/chrome-developer-tools/docs/timeline !!

Rendering perf tools

Page 16: Optimizing browser experience - App!mobile 2013 conf

DevTools layers (experimental - Canary) !!

Rendering perf tools

Page 17: Optimizing browser experience - App!mobile 2013 conf

Chrome DevTools frames panel & layers panel

DEMO!

Page 18: Optimizing browser experience - App!mobile 2013 conf

Thank you!

Q&A?

@matenadasdiProps to Ilya Grigorik for the review