understanding mobile web browser performance

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

Upload: baidu-inc

Post on 10-May-2015

243 views

Category:

Technology


5 download

DESCRIPTION

Mobile web performance including metrics, tools, methods and solutions.

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日星期四