AirJD 焦点
AirJD

没有录音文件
00:00/00:00
加收藏

HTTP1.1 vs HTTP2 a performance analysis(HTTP2比HTTP1性能提高66%) by mozilla

发布者 performance
发布于 1446512644686  浏览 6547 关键词 架构, English 
分享到

第1页

HTTP/1.1 vs HTTP/2
Ragnar Lönn, Load Impact
ragnar@loadimpact.com
@ragnarlonn
a performance analysis
Daniel Stenberg, Mozilla
daniel@haxx.se
@bagder

第2页

Part 2: The Experiment
Objective:

Try to get a sense of real-world performance impact of going from HTTP/1.1 to HTTP/2
@loadimpact

第3页

Approach
Choose a well-known site
Download all resources used by main page
Host everything locally, in controlled environment
Measure load times while simulating different network characteristics

第4页

Site: www.amazon.com
~230-240 resources to get to onload()
...but “only” ~10 javascript files
~10 unique source hosts
~7 Mbyte data

第5页

MacOS X 10.10.3 (4 CPU cores, 16G RAM)
VMware Fusion
Linux 3.19.0-25 (Ubuntu)
2 CPU cores, 2G RAM
Nginx 1.9.5/http2
Shimmer Cat 0.1
Linux Netem
eth0:1


...
eth0:n
Chrome
The Setup

第6页

Test results

第7页

Test results
50-70% reduced load time
-66%

第8页

Remember that:
HTTP/2 implementations still in their infancy

Sites are optimized for HTTP/1.1

Our lab setup is not 100% realistic


So who knows… But still, hey - 60%!

第9页

Interesting observations
Relative speed 
change is flat

第10页

Dependencies

第11页

The dependency tree
index.html
style.css
script1.js
image1.png
image2.png
image3.png
script2.js
image4.png
image5.png
image6.png
image7.png

第12页

Dependency chains
index.html
style.css
script1.js
image1.png
image2.png
image3.png
script2.js
image4.png
image5.png
image6.png
image7.png

第13页

A dependency chain
index.html
script1.js
script2.js
image6.png
1
2
3
4

第14页

Dependency chain load time
Host1/index.html
Host1/script1.js
Host2/script2.js
Host3/image6.png
Conn
Req
Req
Conn
Req
Conn
Req

第15页

The sum of all latencies
Host1/index.html
Host1/script1.js
Host2/script2.js
Host1 RTT
Host2 RTT
Conn
Req
Conn
Req
Host3 RTT
Host3/image6.png
Req
Conn
Req

第16页

The largest sum of all latencies
index.html
style.css
script1.js
image1.png
image2.png
image3.png
script2.js
image4.png
image5.png
image6.png
image7.png

第17页

Minimum load time
Minimum theoretical load time =

The largest “sum of all latencies” value of all dependency chains

第18页

Dependency chains
# of resources loaded in one dependency chain step exceeds # of TCP channels that can be used concurrently
HTTP/1.1 is much disadvantaged when:
This happens quite often

第19页

Dependency chains
The client needs to open new connections
HTTP/2 is disadvantaged when:
This happens more often than strictly necessary today, as it often benefits HTTP/1.1 performance

第20页

Test @ http2.loadimpact.com
支持文件格式:*.pdf
上传最后阶段需要进行在线转换,可能需要1~2分钟,请耐心等待。