Top Banner
Understanding Mobile Web Browser Performance JZ - LBS 12年9月13日星期四
104

Understanding Mobile Web Browser Performance

May 10, 2015

Download

Technology

Baidu, Inc.

Mobile web performance including metrics, tools, methods and solutions.
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: Understanding Mobile Web Browser Performance

Understanding Mobile WebBrowser PerformanceJZ - LBS

12年9月13日星期四

Page 2: Understanding Mobile Web Browser Performance

Topics

• Mobile Browser Architecture

• Mobile Network

• HTTP:Parallel & Cache

• Power

• JavaScript Performance

• Tools

• WPO12年9月13日星期四

Page 3: Understanding Mobile Web Browser Performance

what is a “Webkit” Browser?

12年9月13日星期四

Page 4: Understanding Mobile Web Browser Performance

History

KDE HTML Widget

12年9月13日星期四

Page 5: Understanding Mobile Web Browser Performance

History

KDE HTML Widget

copy

12年9月13日星期四

Page 6: Understanding Mobile Web Browser Performance

History

KDE HTML Widget

KHTMLcopy

12年9月13日星期四

Page 7: Understanding Mobile Web Browser Performance

History

KDE HTML Widget

KHTMLcopy

12年9月13日星期四

Page 8: Understanding Mobile Web Browser Performance

History

KDE HTML Widget

KHTMLcopy

KJS

12年9月13日星期四

Page 9: Understanding Mobile Web Browser Performance

History

KDE HTML Widget

KHTMLcopy fork

KJS

12年9月13日星期四

Page 10: Understanding Mobile Web Browser Performance

History

KDE HTML Widget

KHTML

WebKitcopy fork

KJS

12年9月13日星期四

Page 11: Understanding Mobile Web Browser Performance

Android Browser Architecture

WebKit

WebCore JavaScriptCore

12年9月13日星期四

Page 12: Understanding Mobile Web Browser Performance

Android Browser Architecture

WebKit

WebCore JavaScriptCore

git clone https://android.googlesource.com/platform/external/webkit

12年9月13日星期四

Page 13: Understanding Mobile Web Browser Performance

http://map.baidu.com/img/red_markers.png

Time

12年9月13日星期四

Page 14: Understanding Mobile Web Browser Performance

http://map.baidu.com/img/red_markers.png

TimeDNS

12年9月13日星期四

Page 15: Understanding Mobile Web Browser Performance

http://map.baidu.com/img/red_markers.png

TimeDNS

map

.bai

du.c

om

map

.n.s

hife

n.co

m

123.

125.

114.

86

12年9月13日星期四

Page 16: Understanding Mobile Web Browser Performance

http://map.baidu.com/img/red_markers.png

TimeDNS

map

.bai

du.c

om

map

.n.s

hife

n.co

m

123.

125.

114.

86TCP

12年9月13日星期四

Page 17: Understanding Mobile Web Browser Performance

http://map.baidu.com/img/red_markers.png

TimeDNS

map

.bai

du.c

om

map

.n.s

hife

n.co

m

123.

125.

114.

86TCP

SYN

SYN

AC

K

AC

K

12年9月13日星期四

Page 18: Understanding Mobile Web Browser Performance

http://map.baidu.com/img/red_markers.png

TimeDNS

map

.bai

du.c

om

map

.n.s

hife

n.co

m

123.

125.

114.

86TCP HTTP

SYN

SYN

AC

K

AC

K

12年9月13日星期四

Page 19: Understanding Mobile Web Browser Performance

http://map.baidu.com/img/red_markers.png

TimeDNS

map

.bai

du.c

om

map

.n.s

hife

n.co

m

123.

125.

114.

86TCP HTTP

GET

/im

g/re

d_m

arke

rs.p

ng

HT

TP/

1.1

200

OK

SYN

SYN

AC

K

AC

K

12年9月13日星期四

Page 20: Understanding Mobile Web Browser Performance

http://map.baidu.com/img/red_markers.png

TimeDNS

map

.bai

du.c

om

map

.n.s

hife

n.co

m

123.

125.

114.

86TCP HTTP

GET

/im

g/re

d_m

arke

rs.p

ng

HT

TP/

1.1

200

OK

SYN

SYN

AC

K

AC

K

12年9月13日星期四

Page 21: Understanding Mobile Web Browser Performance

Mobile Network

0

0.1

0.2

0.3

0.4

2G 3G WIFI

30%30%

40%

12年9月13日星期四

Page 22: Understanding Mobile Web Browser Performance

2G Network

• Download Speed

• 15 K/s, or even worse

• RTT(Round Trip Time)

• 700ms - 900ms

12年9月13日星期四

Page 23: Understanding Mobile Web Browser Performance

How to Measure RTT

12年9月13日星期四

Page 24: Understanding Mobile Web Browser Performance

How to Measure RTT

• ping

12年9月13日星期四

Page 25: Understanding Mobile Web Browser Performance

How to Measure RTT

• ping

• use real TCP connection

12年9月13日星期四

Page 26: Understanding Mobile Web Browser Performance

How to Measure RTT

• ping

• use real TCP connection

• tools

12年9月13日星期四

Page 27: Understanding Mobile Web Browser Performance

How to Measure RTT

• ping

• use real TCP connection

• tools

12年9月13日星期四

Page 28: Understanding Mobile Web Browser Performance

How to Measure RTT

• ping

• use real TCP connection

• tools

¥12

12年9月13日星期四

Page 29: Understanding Mobile Web Browser Performance

12年9月13日星期四

Page 30: Understanding Mobile Web Browser Performance

RTT 800ms

12年9月13日星期四

Page 31: Understanding Mobile Web Browser Performance

RTT 800ms

DNS

12年9月13日星期四

Page 32: Understanding Mobile Web Browser Performance

RTT 800ms

DNS TCP

12年9月13日星期四

Page 33: Understanding Mobile Web Browser Performance

RTT 800ms

DNS TCP HTTP

12年9月13日星期四

Page 34: Understanding Mobile Web Browser Performance

RTT 800ms

DNS TCP HTTP

1 RTT

12年9月13日星期四

Page 35: Understanding Mobile Web Browser Performance

RTT 800ms

DNS TCP HTTP

1 RTT 1.5 RTT

12年9月13日星期四

Page 36: Understanding Mobile Web Browser Performance

RTT 800ms

DNS TCP HTTP

1 RTT 1.5 RTT 1 RTT

12年9月13日星期四

Page 37: Understanding Mobile Web Browser Performance

Network Detection

• W3C Network Information API

• android support (none, 2g, 3g, wifi)

• Measure real request download time

12年9月13日星期四

Page 38: Understanding Mobile Web Browser Performance

HTTP

12年9月13日星期四

Page 39: Understanding Mobile Web Browser Performance

Parallel Downloads Per Host

• Android:4 - 8

• iOS 4.x:6

• iOS 5.x:6 - 8

12年9月13日星期四

Page 40: Understanding Mobile Web Browser Performance

Different with Desktop

• PC

• Simultaneously

• Mobile

• Seldom Simultaneously

12年9月13日星期四

Page 41: Understanding Mobile Web Browser Performance

Different with Desktop

• PC

• Simultaneously

• Mobile

• Seldom Simultaneously

12年9月13日星期四

Page 42: Understanding Mobile Web Browser Performance

Different with Desktop

• PC

• Simultaneously

• Mobile

• Seldom Simultaneously

12年9月13日星期四

Page 43: Understanding Mobile Web Browser Performance

Different with Desktop

• PC

• Simultaneously

• Mobile

• Seldom Simultaneously

12年9月13日星期四

Page 44: Understanding Mobile Web Browser Performance

Different with Desktop

• PC

• Simultaneously

• Mobile

• Seldom Simultaneously

12年9月13日星期四

Page 45: Understanding Mobile Web Browser Performance

Domain Sharding

• Increase parallel downloads

12年9月13日星期四

Page 46: Understanding Mobile Web Browser Performance

Domain ShardingDownside of

12年9月13日星期四

Page 47: Understanding Mobile Web Browser Performance

• Increase DNS lookups

Domain ShardingDownside of

12年9月13日星期四

Page 48: Understanding Mobile Web Browser Performance

• Increase DNS lookups

• Increase TCP connections

Domain ShardingDownside of

12年9月13日星期四

Page 49: Understanding Mobile Web Browser Performance

No need to consider using domain sharding

12年9月13日星期四

Page 50: Understanding Mobile Web Browser Performance

No need to consider using domain sharding

EXCEPT...

12年9月13日星期四

Page 51: Understanding Mobile Web Browser Performance

map encountered a problem

12年9月13日星期四

Page 52: Understanding Mobile Web Browser Performance

map encountered a problem

12年9月13日星期四

Page 53: Understanding Mobile Web Browser Performance

map encountered a problem

12年9月13日星期四

Page 54: Understanding Mobile Web Browser Performance

map encountered a problem

tiles load error

12年9月13日星期四

Page 55: Understanding Mobile Web Browser Performance

HTTP Pipelining

12年9月13日星期四

Page 56: Understanding Mobile Web Browser Performance

HTTP Pipelining

12年9月13日星期四

Page 57: Understanding Mobile Web Browser Performance

12年9月13日星期四

Page 58: Understanding Mobile Web Browser Performance

12年9月13日星期四

Page 59: Understanding Mobile Web Browser Performance

no pipelining

12年9月13日星期四

Page 60: Understanding Mobile Web Browser Performance

no pipelining

12年9月13日星期四

Page 61: Understanding Mobile Web Browser Performance

no pipelining

with pipelining

12年9月13日星期四

Page 62: Understanding Mobile Web Browser Performance

Mobile Support

• Android Support

• iOS 5 Support

12年9月13日星期四

Page 63: Understanding Mobile Web Browser Performance

12年9月13日星期四

Page 64: Understanding Mobile Web Browser Performance

12年9月13日星期四

Page 65: Understanding Mobile Web Browser Performance

iOS Safari

12年9月13日星期四

Page 66: Understanding Mobile Web Browser Performance

iOS Safari

12年9月13日星期四

Page 67: Understanding Mobile Web Browser Performance

iOS Safari

Android Browser

12年9月13日星期四

Page 68: Understanding Mobile Web Browser Performance

Cache

12年9月13日星期四

Page 69: Understanding Mobile Web Browser Performance

Mobile Cache Size

iPhone4 Android iPad1 iPad2

OS iOS 4.3 Android 2.x iOS 4.3 iOS 4.3

persistent 0 4 0 0

memory 100 4 20 50

12年9月13日星期四

Page 70: Understanding Mobile Web Browser Performance

But a little bit chaos

there is no consistent data

12年9月13日星期四

Page 71: Understanding Mobile Web Browser Performance

Cache Limit

• Mobile cache is limited

• Single component size limit

12年9月13日星期四

Page 72: Understanding Mobile Web Browser Performance

Cache Eviction

12年9月13日星期四

Page 73: Understanding Mobile Web Browser Performance

Cache Eviction

• Prioritize base on expiration date (Android)

12年9月13日星期四

Page 74: Understanding Mobile Web Browser Performance

Cache Eviction

• Prioritize base on expiration date (Android)

• Far future expiration dates have higher priority

12年9月13日星期四

Page 75: Understanding Mobile Web Browser Performance

Cache Eviction

• Prioritize base on expiration date (Android)

• Far future expiration dates have higher priority

• Evict lowest priority items first

12年9月13日星期四

Page 76: Understanding Mobile Web Browser Performance

More about Caching

12年9月13日星期四

Page 77: Understanding Mobile Web Browser Performance

More about Caching

• Life Circle:

12年9月13日星期四

Page 78: Understanding Mobile Web Browser Performance

More about Caching

• Life Circle:

• tab switching

12年9月13日星期四

Page 79: Understanding Mobile Web Browser Performance

More about Caching

• Life Circle:

• tab switching

• lock screen

12年9月13日星期四

Page 80: Understanding Mobile Web Browser Performance

More about Caching

• Life Circle:

• tab switching

• lock screen

• restart browser

12年9月13日星期四

Page 81: Understanding Mobile Web Browser Performance

More about Caching

• Life Circle:

• tab switching

• lock screen

• restart browser

• restart phone

12年9月13日星期四

Page 82: Understanding Mobile Web Browser Performance

More about Caching

• Life Circle:

• tab switching

• lock screen

• restart browser

• restart phone

• Load from home screen

12年9月13日星期四

Page 83: Understanding Mobile Web Browser Performance

Cache Recommendations

12年9月13日星期四

Page 84: Understanding Mobile Web Browser Performance

Cache Recommendations

• Use far future cache expiration headers

12年9月13日星期四

Page 85: Understanding Mobile Web Browser Performance

Cache Recommendations

• Use far future cache expiration headers

• Limit single component sizes

12年9月13日星期四

Page 86: Understanding Mobile Web Browser Performance

Cache Recommendations

• Use far future cache expiration headers

• Limit single component sizes

• Use Application Cache, LocalStorage and Database

12年9月13日星期四

Page 87: Understanding Mobile Web Browser Performance

Cache Recommendations

• Use far future cache expiration headers

• Limit single component sizes

• Use Application Cache, LocalStorage and Database

• Do your own test

12年9月13日星期四

Page 88: Understanding Mobile Web Browser Performance

Cache References

• Mobile Browser Cache Limits: Android, iOS, and webOS - YUI Blog

• Mobile Browser Cache Limits, Revisited - YUI Blog

• Understanding Mobile Cache Sizes - Guy from Mobitest

• Mobile Browser Cache Sizes – Round 2 - Guy from Mobitest

• Mobile cacheability - WINK Blog

• Early findings: Mobile browser cache persistence and behaviour

• Mobile cache file sizes - Steve Sounder12年9月13日星期四

Page 89: Understanding Mobile Web Browser Performance

Power

12年9月13日星期四

Page 90: Understanding Mobile Web Browser Performance

What about battery consumption while loading a web page ?

12年9月13日星期四

Page 91: Understanding Mobile Web Browser Performance

12年9月13日星期四

Page 92: Understanding Mobile Web Browser Performance

12年9月13日星期四

Page 93: Understanding Mobile Web Browser Performance

Powser Consumption

• JavaScript: Avoid unused functions

• CSS: Avoid unused css rules

• Image: Use jpeg

12年9月13日星期四

Page 94: Understanding Mobile Web Browser Performance

JavaScript Performance

• SunSpider benchmark numbers have improved dramatically in rencent years

• Android (Jun 2011) < 2.5s

• Desktop Chrome (Sep 2008) ~ 2.8s

12年9月13日星期四

Page 95: Understanding Mobile Web Browser Performance

Touch, No Click

12年9月13日星期四

Page 96: Understanding Mobile Web Browser Performance

Touch, No Click

• Click event delays 400ms

12年9月13日星期四

Page 97: Understanding Mobile Web Browser Performance

Touch, No Click

• Click event delays 400ms

• Use touch event instead, delay < 100ms

12年9月13日星期四

Page 98: Understanding Mobile Web Browser Performance

Common WPO

• gzip

• reduce dns lookups

• reduce requests

• minify js and css

• scripts to the bottom (may be)

12年9月13日星期四

Page 99: Understanding Mobile Web Browser Performance

Image & Icon

12年9月13日星期四

Page 100: Understanding Mobile Web Browser Performance

Image & Icon

• Use base64 encoded string

12年9月13日星期四

Page 101: Understanding Mobile Web Browser Performance

Image & Icon

• Use base64 encoded string

• Can be gzipped

12年9月13日星期四

Page 102: Understanding Mobile Web Browser Performance

Image & Icon

• Use base64 encoded string

• Can be gzipped

• Size increase 0.8% but save lots of request

12年9月13日星期四

Page 103: Understanding Mobile Web Browser Performance

Tools

• Fiddler(PC), Charles(PC, Mac, Linux)

• Wireshark(PC, Mac, Linux)

• Ping Pro(iOS)

• iWebInspector, WEINRE, Chrome for Android, UC

• Mobitest

12年9月13日星期四

Page 104: Understanding Mobile Web Browser Performance

Q&Athanks

12年9月13日星期四