SlideShare uma empresa Scribd logo
1 de 85
Baixar para ler offline
Holger Bartel | @foobartel | FEDay, Guangzhou, China, 19/03/2016
Web Performance

in the Age of HTTP/2
@foobartel
Holger Bartel | @foobartel | FEDay, Guangzhou, China, 19/03/2016
Also on Sina Weibo! ;)
Waiting
Source
And it’s been like that for a long time.
Nobody likes to wait.
Source
waiting
ˈweɪtɪŋ/
noun
1. the action of staying where one is or
delaying action until a particular time or
event.
"years of waiting"
Source
waiting
ˈweɪtɪŋ/
noun
1. the action of staying where one is or
delaying action until a particular time or
event.
"years of waiting"
Web Performance
🚀
Users expect ~2-3 seconds to load a site…
This is a user’s definition of ‘fast’
And today, we’re even aiming to deliver something faster
User Expectations
50% of people say they'll abandon a page that takes
longer than 4 seconds to load
User Expectations
Depending on a users location and infrastructure it
might take longer
More than 8-10 seconds of load time for sure is pushing
it and people will not wait
User Expectations
Delay User perception
0–100 ms Instant
100–300 ms Small perceptible delay
300–1000 ms Machine is working
1,000+ ms Likely mental context switch
10,000+ ms Task is abandoned
Source
The unofficial rule of thumb in the web
performance community:
Render pages, or at the very least provide
visual feedback, in under 250 milliseconds to
keep the user engaged!
Source
Our Logical Conclusion: 

Faster is Be er!
The Impact of Performance
(and why you should care)
Speeding up a
fundraising site by
60% increased
donations by 14%.

— Obama Campaign
Adding half a second to a
search results page can
decrease traffic and ad
revenues by 20%

— Google
Every additional 100
milliseconds of load
time decreased
sales by 1%.

— Amazon
40% of surveyed online
shoppers will abandon a
page that takes more
than 3 seconds to load.

— Akamai
Let’s have a look at

Global Network Speed
http://www.netindex.com
Global Broadband Average
Download: 21.3Mbps
Global Mobile Average
Download: 10.9Mbps
Turns Out…
Not Quite That Easy!
Top 20 Countries Broadband Download 2012 - 2014
November 2014
Philippines

Download: 3.49Mbps (Mobile roughly the same)
Indonesia

Download: 5.27Mbps (Mobile 2.67Mbps)
USA

Download: 31.3Mbps (Mobile 13.33Mbps)
Sounds pre y good!
3G, Edge, GPRS
3G, Edge, GPRS

or Maybe (Close to) Offline…
This is Why
Faster Sites are Be er!
2013 - 2016
Source
Building for Performance
Performance Techniques Today
Concatenation of Files
Image Sprites
Inline Images
Domain Sharding
Rendering Pages
Waiting for DOM and CSSOM to build the render tree.
Render tree contains nodes to render the page.
Layout computes the exact position and size.
Paint turns the render tree into pixels on screen.
Render-Tree Construction,
Layout & Paint
Source
Waiting for CSS
Avoids “Flash of Unstyled Content” (FOUC)
Render Blocking CSS
Source
The parser has to stop for scripts before continuing to
parse HTML.
JavaScript can query and modify DOM and CSSOM.
JavaScript blocks DOM construction unless
explicitly declared as async.
Render Blocking JavaScript
Source
Every request fetched inside of HEAD, will postpone
the rendering of the page
Loading JavaScript
Source
Every request takes roughly ~200ms
Avoid unnecessary redirects
Limit HTTP Requests
Source
Critical Resource
Critical Path Length
Critical Bytes
The Critical Rendering Path
Source
Optimising the Critical
Rendering Path
=
Ge ing stuff on the screen
fast
Minimize the number of critical resources.
Minimize the number of critical bytes.
Minimize the critical path length.
A critical resource is a resource that can block
initial rendering of a page.
Source
The History of HTTP
HTTP/0.9 (1991)
HTTP/1.0 (1996)
HTTP/1.1 (1999)
To reduce the load on the server, HTTP/1.1’s
approach was to limit its TCP connections
“A single-user client should not maintain more
than 2 connections with any server or proxy.”
In real life, browsers hold ~6 TCP connections
simultaneously per origin.
More Bandwidth Doesn’t Make a Big Difference
An increase from 5Mbps to 10Mbps results in a
disappointing 5% improvement in page load times.
Source
The water pipe example
Bandwidth & Round-Trip Time
PageLoadTime(ms)
0
800
1600
2400
3200
Bandwidth
1Mbps 2Mbps 3Mbps 4Mpbs 5Mbps 6Mbps 7Mbps 8Mbps 9Mbps 10Mbps
Page Load Time as bandwidth increases
Source
Round-trip-times (RTT) have a bigger impact
on performance, more than bandwidth does.
Source
Round-trip-times (RTT) have a bigger impact
on performance, more than bandwidth does.
Source
PageLoadTime(ms)
0
800
1600
2400
3200
Bandwidth
1Mbps 2Mbps 3Mbps 4Mpbs 5Mbps 6Mbps 7Mbps 8Mbps 9Mbps 10Mbps
PageLoadTime(ms)
0
1000
2000
3000
4000
RTT
240ms 220ms 200ms 180ms 160ms 140ms 120ms 100ms 80ms 60ms 40ms 20ms 0ms
Page Load Time as bandwidth increases
Page Load Time as latency decreases
Source
“HTTP2 produces the biggest performance
gains on mobile bc it remedies high latency”

— @patrickhamann #smashingconf
PageLoadTime(ms)
0
1000
2000
3000
4000
RTT
240ms 220ms 200ms 180ms 160ms 140ms 120ms 100ms 80ms 60ms 40ms 20ms
Page Load Time as latency decreases
Source
SPDY(2010)
Multiplexing: allow concurrent requests
across a single TCP connection;
Allow browsers to prioritise assets so that
vital resources of a page could are sent first;
Compress and reduce HTTP headers;
Server push: A server can push important
resources to the browser before being asked
for them.
HTTP/2 (2015)
Networking protocol for low-latency transport
of content over the web.
Originally started out from the SPDY protocol,
now standardised as HTTP version 2.
• Multiplexing
• Compressed headers
• Asset Prioritisation & Dependencies
• Server Push 

(saves the time it takes the client to ask for
the resources)
HTTP/2 is backwards-compatible 

with HTTP/1.1
Building for Performance 

with HTTP/2
What do you need to enable HTTP/2?
SSL/TLS required
Google* uses secure connections as a ranking
signal, and browsers are starting to flag non-h ps
websites as ‘not secure’.
Some HTML5 APIs will also require secure
connections in the future (e.g. Geolocation).
* Baidu Analytics includes a site speed section, so they might follow this
trend in the future.
Leveraging additional benefits of SSL
Serving HTTP/2
Apache Module mod_h p2
HTTP/2 supporting browsers
Under HTTP/2, some of our current best
practices might impact performance
negatively.
Let’s look at the new anti-pa erns.
What has Changed?
HTTP/1.x HTTP/2
This was a workaround for the lack of parallelism in
HTTP/1.x to reduce requests;
Combining multiple files into one and fetch with one
request.
Need to wait of the entire file/response to arrive
Concatenation of Files
• Structure code to only deliver what’s needed
• No need for additional build process steps
• Optimise caching policies depending on change
frequency of files
New!
Requests are cheap!
Thanks to the new multiplexing ability of HTTP/2
resources don’t need to be queued anymore.
Nevertheless, depending on the kind of image, and how
they are used, spriting can still be the be er option in
regards to compression and file size.
Image Sprites
Another workaround for the lack of parallelism in
HTTP/1.x

Besides increasing the file size of stylesheets etc., the
resource can’t be cached and asset re-use will create
unnecessary overhead
Prioritisation features of HTTP/2 can’t be used
Inline Images
And one more workaround for the lack of multiplexing
in HTTP/1.x
Browsers can handle ~6 connections per origin, but
domain sharding allows us to (theoretically) extend this
to an unlimited amount of connections.
Domain sharding will have a negative impact when
used with HTTP/2.
Domain Sharding
Source
!
HTTP1.x HTTP2
Reduce DNS lookups ✓ ✓
Reuse TCP connections ✓ ✓
Use a Content Delivery Network ✓ ✓
Minimize number of HTTP redirects ✓ ✓
Eliminate unnecessary request bytes ✓ ✓
Compress assets during transfer ✓ ✓
Cache resources on the client ✓ ✓
Eliminate unnecessary resources ✓ ✓
Apply domain sharding Revisit (max 2) Remove
Concatenate resources Careful & consider caching Remove
Inline resources Careful & consider caching Remove (Server Push)
Source
Ge ing to HTTP/2
Make the move to TLS & add a secure
connection to your site

(This can be done at any time and brings some additional benefits, even without HTTP/2)
Make sure your server supports HTTP/2

(Confirm with your hosting provider, roll your own or use a HTTP/2 supporting CDN service)
Prepare your assets & adjust the build process
for HTTP/2

(Adjust to output the required files that best suit your needs and test your choices)
Check Analytics & confirm your user’s
browser support

(This could affect users with older browsers negatively, and check for majority support)
Implement your favourite HTTP/2 best
practices and adjust your caching policies

(Measure your performance before and a er the update and share your results with the world!!)
!
Holger Bartel | @foobartel | FEDay, Guangzhou, China, 19/03/2016

Mais conteúdo relacionado

Mais procurados

HTTP/2 Introduction
HTTP/2 IntroductionHTTP/2 Introduction
HTTP/2 IntroductionWalter Liu
 
Altitude San Francisco 2018: Programming the Edge
Altitude San Francisco 2018: Programming the EdgeAltitude San Francisco 2018: Programming the Edge
Altitude San Francisco 2018: Programming the EdgeFastly
 
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0Cory Forsyth
 
I got 99 problems, but ReST ain't one
I got 99 problems, but ReST ain't oneI got 99 problems, but ReST ain't one
I got 99 problems, but ReST ain't oneAdrian Cole
 
HTTP/2 Update - FOSDEM 2016
HTTP/2 Update - FOSDEM 2016HTTP/2 Update - FOSDEM 2016
HTTP/2 Update - FOSDEM 2016Daniel Stenberg
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2Ido Flatow
 
HTTP2:新的机遇与挑战
HTTP2:新的机遇与挑战HTTP2:新的机遇与挑战
HTTP2:新的机遇与挑战Jerry Qu
 
HTTP 2.0 – What do I need to know?
HTTP 2.0 – What do I need to know? HTTP 2.0 – What do I need to know?
HTTP 2.0 – What do I need to know? Sigma Software
 
HTTP - The Protocol of Our Lives
HTTP - The Protocol of Our LivesHTTP - The Protocol of Our Lives
HTTP - The Protocol of Our LivesBrent Shaffer
 
Revisiting HTTP/2
Revisiting HTTP/2Revisiting HTTP/2
Revisiting HTTP/2Fastly
 
Taking a Quantum Leap with Html 5 WebSocket
Taking a Quantum Leap with Html 5 WebSocketTaking a Quantum Leap with Html 5 WebSocket
Taking a Quantum Leap with Html 5 WebSocketShahriar Hyder
 
HTTP2 & HPACK #pyfes 2013-11-30
HTTP2 & HPACK #pyfes 2013-11-30HTTP2 & HPACK #pyfes 2013-11-30
HTTP2 & HPACK #pyfes 2013-11-30Jxck Jxck
 
Web Performance Automation - NY Web Performance Meetup
Web Performance Automation - NY Web Performance MeetupWeb Performance Automation - NY Web Performance Meetup
Web Performance Automation - NY Web Performance MeetupStrangeloop
 
Efficient HTTP Apis
Efficient HTTP ApisEfficient HTTP Apis
Efficient HTTP ApisAdrian Cole
 
Concepts for Operating a Web Site
Concepts for Operating a Web SiteConcepts for Operating a Web Site
Concepts for Operating a Web SiteCan Burak Çilingir
 
What we can learn from CDNs about Web Development, Deployment, and Performance
What we can learn from CDNs about Web Development, Deployment, and PerformanceWhat we can learn from CDNs about Web Development, Deployment, and Performance
What we can learn from CDNs about Web Development, Deployment, and PerformanceFastly
 

Mais procurados (20)

Http methods
Http methodsHttp methods
Http methods
 
Http2
Http2Http2
Http2
 
HTTP/2 Introduction
HTTP/2 IntroductionHTTP/2 Introduction
HTTP/2 Introduction
 
Altitude San Francisco 2018: Programming the Edge
Altitude San Francisco 2018: Programming the EdgeAltitude San Francisco 2018: Programming the Edge
Altitude San Francisco 2018: Programming the Edge
 
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
 
I got 99 problems, but ReST ain't one
I got 99 problems, but ReST ain't oneI got 99 problems, but ReST ain't one
I got 99 problems, but ReST ain't one
 
HTTP/2 Update - FOSDEM 2016
HTTP/2 Update - FOSDEM 2016HTTP/2 Update - FOSDEM 2016
HTTP/2 Update - FOSDEM 2016
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2
 
HTTP2:新的机遇与挑战
HTTP2:新的机遇与挑战HTTP2:新的机遇与挑战
HTTP2:新的机遇与挑战
 
HTTP 2.0 – What do I need to know?
HTTP 2.0 – What do I need to know? HTTP 2.0 – What do I need to know?
HTTP 2.0 – What do I need to know?
 
Http2 right now
Http2 right nowHttp2 right now
Http2 right now
 
HTTP - The Protocol of Our Lives
HTTP - The Protocol of Our LivesHTTP - The Protocol of Our Lives
HTTP - The Protocol of Our Lives
 
Revisiting HTTP/2
Revisiting HTTP/2Revisiting HTTP/2
Revisiting HTTP/2
 
Taking a Quantum Leap with Html 5 WebSocket
Taking a Quantum Leap with Html 5 WebSocketTaking a Quantum Leap with Html 5 WebSocket
Taking a Quantum Leap with Html 5 WebSocket
 
HTTP2 & HPACK #pyfes 2013-11-30
HTTP2 & HPACK #pyfes 2013-11-30HTTP2 & HPACK #pyfes 2013-11-30
HTTP2 & HPACK #pyfes 2013-11-30
 
Web Performance Automation - NY Web Performance Meetup
Web Performance Automation - NY Web Performance MeetupWeb Performance Automation - NY Web Performance Meetup
Web Performance Automation - NY Web Performance Meetup
 
Efficient HTTP Apis
Efficient HTTP ApisEfficient HTTP Apis
Efficient HTTP Apis
 
Concepts for Operating a Web Site
Concepts for Operating a Web SiteConcepts for Operating a Web Site
Concepts for Operating a Web Site
 
Http2 kotlin
Http2   kotlinHttp2   kotlin
Http2 kotlin
 
What we can learn from CDNs about Web Development, Deployment, and Performance
What we can learn from CDNs about Web Development, Deployment, and PerformanceWhat we can learn from CDNs about Web Development, Deployment, and Performance
What we can learn from CDNs about Web Development, Deployment, and Performance
 

Semelhante a Web Performance in the Age of HTTP/2 - FEDay Conference, Guangzhou, China 19/03/2016

Next generation web protocols
Next generation web protocolsNext generation web protocols
Next generation web protocolsDaniel Austin
 
HTTP/2 and a Faster Web
HTTP/2 and a Faster WebHTTP/2 and a Faster Web
HTTP/2 and a Faster WebC4Media
 
[White Paper] Innovations in Mobile Content Delivery: Avoiding the Great Mobi...
[White Paper] Innovations in Mobile Content Delivery: Avoiding the Great Mobi...[White Paper] Innovations in Mobile Content Delivery: Avoiding the Great Mobi...
[White Paper] Innovations in Mobile Content Delivery: Avoiding the Great Mobi...Cotendo
 
The Great Mobile Slowdown
The Great Mobile SlowdownThe Great Mobile Slowdown
The Great Mobile Slowdowngyanendra1
 
Mobile web performance - MoDev East
Mobile web performance - MoDev EastMobile web performance - MoDev East
Mobile web performance - MoDev EastPatrick Meenan
 
Http2 is here! And why the web needs it
Http2 is here! And why the web needs itHttp2 is here! And why the web needs it
Http2 is here! And why the web needs itIndicThreads
 
Meetup Tech Talk on Web Performance
Meetup Tech Talk on Web PerformanceMeetup Tech Talk on Web Performance
Meetup Tech Talk on Web PerformanceJean Tunis
 
A SPDYier Experience by Olaniyi Jinadu
A SPDYier Experience by Olaniyi JinaduA SPDYier Experience by Olaniyi Jinadu
A SPDYier Experience by Olaniyi JinaduOlaniyi Jinadu
 
HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1Daniel Austin
 
Http2 protocol changes
Http2 protocol changesHttp2 protocol changes
Http2 protocol changesMark Friedman
 
Art and Science of Web Sites Performance: A Front-end Approach
Art and Science of Web Sites Performance: A Front-end ApproachArt and Science of Web Sites Performance: A Front-end Approach
Art and Science of Web Sites Performance: A Front-end ApproachJiang Zhu
 
TR14-05_Martindell.pdf
TR14-05_Martindell.pdfTR14-05_Martindell.pdf
TR14-05_Martindell.pdfTomTom149267
 
Client Side Performance @ Xero
Client Side Performance @ XeroClient Side Performance @ Xero
Client Side Performance @ XeroCraig Walker
 
Delivering High Performance Websites with NGINX
Delivering High Performance Websites with NGINXDelivering High Performance Websites with NGINX
Delivering High Performance Websites with NGINXNGINX, Inc.
 
Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...
Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...
Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...Amazon Web Services
 
The case for HTTP/2
The case for HTTP/2The case for HTTP/2
The case for HTTP/2GreeceJS
 

Semelhante a Web Performance in the Age of HTTP/2 - FEDay Conference, Guangzhou, China 19/03/2016 (20)

Next generation web protocols
Next generation web protocolsNext generation web protocols
Next generation web protocols
 
HTTP/2 and a Faster Web
HTTP/2 and a Faster WebHTTP/2 and a Faster Web
HTTP/2 and a Faster Web
 
Http/2
Http/2Http/2
Http/2
 
[White Paper] Innovations in Mobile Content Delivery: Avoiding the Great Mobi...
[White Paper] Innovations in Mobile Content Delivery: Avoiding the Great Mobi...[White Paper] Innovations in Mobile Content Delivery: Avoiding the Great Mobi...
[White Paper] Innovations in Mobile Content Delivery: Avoiding the Great Mobi...
 
The Great Mobile Slowdown
The Great Mobile SlowdownThe Great Mobile Slowdown
The Great Mobile Slowdown
 
Mobile web performance - MoDev East
Mobile web performance - MoDev EastMobile web performance - MoDev East
Mobile web performance - MoDev East
 
HTTP/2 Comes to Java
HTTP/2 Comes to JavaHTTP/2 Comes to Java
HTTP/2 Comes to Java
 
HTTP Presentation
HTTP Presentation HTTP Presentation
HTTP Presentation
 
Http2 is here! And why the web needs it
Http2 is here! And why the web needs itHttp2 is here! And why the web needs it
Http2 is here! And why the web needs it
 
Meetup Tech Talk on Web Performance
Meetup Tech Talk on Web PerformanceMeetup Tech Talk on Web Performance
Meetup Tech Talk on Web Performance
 
A SPDYier Experience by Olaniyi Jinadu
A SPDYier Experience by Olaniyi JinaduA SPDYier Experience by Olaniyi Jinadu
A SPDYier Experience by Olaniyi Jinadu
 
HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1
 
Http2 protocol changes
Http2 protocol changesHttp2 protocol changes
Http2 protocol changes
 
Art and Science of Web Sites Performance: A Front-end Approach
Art and Science of Web Sites Performance: A Front-end ApproachArt and Science of Web Sites Performance: A Front-end Approach
Art and Science of Web Sites Performance: A Front-end Approach
 
TR14-05_Martindell.pdf
TR14-05_Martindell.pdfTR14-05_Martindell.pdf
TR14-05_Martindell.pdf
 
Client Side Performance @ Xero
Client Side Performance @ XeroClient Side Performance @ Xero
Client Side Performance @ Xero
 
Delivering High Performance Websites with NGINX
Delivering High Performance Websites with NGINXDelivering High Performance Websites with NGINX
Delivering High Performance Websites with NGINX
 
Http 2
Http 2Http 2
Http 2
 
Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...
Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...
Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...
 
The case for HTTP/2
The case for HTTP/2The case for HTTP/2
The case for HTTP/2
 

Mais de Holger Bartel

The Untold Benefits of Ethical Design - Topconf Tallinn 2018
The Untold Benefits of Ethical Design - Topconf Tallinn 2018The Untold Benefits of Ethical Design - Topconf Tallinn 2018
The Untold Benefits of Ethical Design - Topconf Tallinn 2018Holger Bartel
 
The Untold Benefits of Ethical Design - Coldfront 2018, Copenhagen
The Untold Benefits of Ethical Design - Coldfront 2018, CopenhagenThe Untold Benefits of Ethical Design - Coldfront 2018, Copenhagen
The Untold Benefits of Ethical Design - Coldfront 2018, CopenhagenHolger Bartel
 
The Untold Benefits of Ethical Design - Web Directions Summit 2018, Sydney
The Untold Benefits of Ethical Design - Web Directions Summit 2018, SydneyThe Untold Benefits of Ethical Design - Web Directions Summit 2018, Sydney
The Untold Benefits of Ethical Design - Web Directions Summit 2018, SydneyHolger Bartel
 
Web Performance in the Age of HTTP2 - Topconf Tallinn 2016 - Holger Bartel
Web Performance in the Age of HTTP2 - Topconf Tallinn 2016 - Holger BartelWeb Performance in the Age of HTTP2 - Topconf Tallinn 2016 - Holger Bartel
Web Performance in the Age of HTTP2 - Topconf Tallinn 2016 - Holger BartelHolger Bartel
 
Form Function Class 6, Manila, Philippines 14/11/2015
Form Function Class 6, Manila, Philippines 14/11/2015Form Function Class 6, Manila, Philippines 14/11/2015
Form Function Class 6, Manila, Philippines 14/11/2015Holger Bartel
 
HK CodeConf 2015 - Your WebPerf Sucks
HK CodeConf 2015 - Your WebPerf Sucks HK CodeConf 2015 - Your WebPerf Sucks
HK CodeConf 2015 - Your WebPerf Sucks Holger Bartel
 
Front End Tooling and Performance - Codeaholics HK 2015
Front End Tooling and Performance - Codeaholics HK 2015Front End Tooling and Performance - Codeaholics HK 2015
Front End Tooling and Performance - Codeaholics HK 2015Holger Bartel
 
Building Better Responsive Websites
Building Better Responsive WebsitesBuilding Better Responsive Websites
Building Better Responsive WebsitesHolger Bartel
 
Front End Best Practices
Front End Best PracticesFront End Best Practices
Front End Best PracticesHolger Bartel
 
180 Degrees East, SmartDevCon 2013, Katowice, Poland
180 Degrees East, SmartDevCon 2013, Katowice, Poland180 Degrees East, SmartDevCon 2013, Katowice, Poland
180 Degrees East, SmartDevCon 2013, Katowice, PolandHolger Bartel
 
180 Degrees East, Webshaped 2013, Helsinki, Finland
180 Degrees East, Webshaped 2013, Helsinki, Finland180 Degrees East, Webshaped 2013, Helsinki, Finland
180 Degrees East, Webshaped 2013, Helsinki, FinlandHolger Bartel
 
180 Degrees East at Front Trends 2013, Warsaw, Poland
180 Degrees East at Front Trends 2013, Warsaw, Poland180 Degrees East at Front Trends 2013, Warsaw, Poland
180 Degrees East at Front Trends 2013, Warsaw, PolandHolger Bartel
 
Open Device Labs for A Better User Experience (Mobilliance, Hong Kong)
Open Device Labs for A Better User Experience (Mobilliance, Hong Kong)Open Device Labs for A Better User Experience (Mobilliance, Hong Kong)
Open Device Labs for A Better User Experience (Mobilliance, Hong Kong)Holger Bartel
 
Responsive Web Design & Workflows for Todays Web (THE UX-MEN at The Hive, Hon...
Responsive Web Design & Workflows for Todays Web (THE UX-MEN at The Hive, Hon...Responsive Web Design & Workflows for Todays Web (THE UX-MEN at The Hive, Hon...
Responsive Web Design & Workflows for Todays Web (THE UX-MEN at The Hive, Hon...Holger Bartel
 

Mais de Holger Bartel (14)

The Untold Benefits of Ethical Design - Topconf Tallinn 2018
The Untold Benefits of Ethical Design - Topconf Tallinn 2018The Untold Benefits of Ethical Design - Topconf Tallinn 2018
The Untold Benefits of Ethical Design - Topconf Tallinn 2018
 
The Untold Benefits of Ethical Design - Coldfront 2018, Copenhagen
The Untold Benefits of Ethical Design - Coldfront 2018, CopenhagenThe Untold Benefits of Ethical Design - Coldfront 2018, Copenhagen
The Untold Benefits of Ethical Design - Coldfront 2018, Copenhagen
 
The Untold Benefits of Ethical Design - Web Directions Summit 2018, Sydney
The Untold Benefits of Ethical Design - Web Directions Summit 2018, SydneyThe Untold Benefits of Ethical Design - Web Directions Summit 2018, Sydney
The Untold Benefits of Ethical Design - Web Directions Summit 2018, Sydney
 
Web Performance in the Age of HTTP2 - Topconf Tallinn 2016 - Holger Bartel
Web Performance in the Age of HTTP2 - Topconf Tallinn 2016 - Holger BartelWeb Performance in the Age of HTTP2 - Topconf Tallinn 2016 - Holger Bartel
Web Performance in the Age of HTTP2 - Topconf Tallinn 2016 - Holger Bartel
 
Form Function Class 6, Manila, Philippines 14/11/2015
Form Function Class 6, Manila, Philippines 14/11/2015Form Function Class 6, Manila, Philippines 14/11/2015
Form Function Class 6, Manila, Philippines 14/11/2015
 
HK CodeConf 2015 - Your WebPerf Sucks
HK CodeConf 2015 - Your WebPerf Sucks HK CodeConf 2015 - Your WebPerf Sucks
HK CodeConf 2015 - Your WebPerf Sucks
 
Front End Tooling and Performance - Codeaholics HK 2015
Front End Tooling and Performance - Codeaholics HK 2015Front End Tooling and Performance - Codeaholics HK 2015
Front End Tooling and Performance - Codeaholics HK 2015
 
Building Better Responsive Websites
Building Better Responsive WebsitesBuilding Better Responsive Websites
Building Better Responsive Websites
 
Front End Best Practices
Front End Best PracticesFront End Best Practices
Front End Best Practices
 
180 Degrees East, SmartDevCon 2013, Katowice, Poland
180 Degrees East, SmartDevCon 2013, Katowice, Poland180 Degrees East, SmartDevCon 2013, Katowice, Poland
180 Degrees East, SmartDevCon 2013, Katowice, Poland
 
180 Degrees East, Webshaped 2013, Helsinki, Finland
180 Degrees East, Webshaped 2013, Helsinki, Finland180 Degrees East, Webshaped 2013, Helsinki, Finland
180 Degrees East, Webshaped 2013, Helsinki, Finland
 
180 Degrees East at Front Trends 2013, Warsaw, Poland
180 Degrees East at Front Trends 2013, Warsaw, Poland180 Degrees East at Front Trends 2013, Warsaw, Poland
180 Degrees East at Front Trends 2013, Warsaw, Poland
 
Open Device Labs for A Better User Experience (Mobilliance, Hong Kong)
Open Device Labs for A Better User Experience (Mobilliance, Hong Kong)Open Device Labs for A Better User Experience (Mobilliance, Hong Kong)
Open Device Labs for A Better User Experience (Mobilliance, Hong Kong)
 
Responsive Web Design & Workflows for Todays Web (THE UX-MEN at The Hive, Hon...
Responsive Web Design & Workflows for Todays Web (THE UX-MEN at The Hive, Hon...Responsive Web Design & Workflows for Todays Web (THE UX-MEN at The Hive, Hon...
Responsive Web Design & Workflows for Todays Web (THE UX-MEN at The Hive, Hon...
 

Último

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 

Último (20)

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 

Web Performance in the Age of HTTP/2 - FEDay Conference, Guangzhou, China 19/03/2016

  • 1. Holger Bartel | @foobartel | FEDay, Guangzhou, China, 19/03/2016 Web Performance
 in the Age of HTTP/2
  • 2. @foobartel Holger Bartel | @foobartel | FEDay, Guangzhou, China, 19/03/2016 Also on Sina Weibo! ;)
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 12. Source And it’s been like that for a long time. Nobody likes to wait.
  • 13. Source waiting ˈweɪtɪŋ/ noun 1. the action of staying where one is or delaying action until a particular time or event. "years of waiting"
  • 14. Source waiting ˈweɪtɪŋ/ noun 1. the action of staying where one is or delaying action until a particular time or event. "years of waiting"
  • 16. Users expect ~2-3 seconds to load a site… This is a user’s definition of ‘fast’ And today, we’re even aiming to deliver something faster User Expectations
  • 17. 50% of people say they'll abandon a page that takes longer than 4 seconds to load User Expectations
  • 18. Depending on a users location and infrastructure it might take longer More than 8-10 seconds of load time for sure is pushing it and people will not wait User Expectations
  • 19. Delay User perception 0–100 ms Instant 100–300 ms Small perceptible delay 300–1000 ms Machine is working 1,000+ ms Likely mental context switch 10,000+ ms Task is abandoned Source
  • 20. The unofficial rule of thumb in the web performance community: Render pages, or at the very least provide visual feedback, in under 250 milliseconds to keep the user engaged! Source
  • 21. Our Logical Conclusion: 
 Faster is Be er!
  • 22. The Impact of Performance (and why you should care)
  • 23. Speeding up a fundraising site by 60% increased donations by 14%.
 — Obama Campaign Adding half a second to a search results page can decrease traffic and ad revenues by 20%
 — Google Every additional 100 milliseconds of load time decreased sales by 1%.
 — Amazon 40% of surveyed online shoppers will abandon a page that takes more than 3 seconds to load.
 — Akamai
  • 24. Let’s have a look at
 Global Network Speed
  • 25. http://www.netindex.com Global Broadband Average Download: 21.3Mbps Global Mobile Average Download: 10.9Mbps
  • 26. Turns Out… Not Quite That Easy! Top 20 Countries Broadband Download 2012 - 2014
  • 27. November 2014 Philippines
 Download: 3.49Mbps (Mobile roughly the same) Indonesia
 Download: 5.27Mbps (Mobile 2.67Mbps) USA
 Download: 31.3Mbps (Mobile 13.33Mbps)
  • 28. Sounds pre y good!
  • 30. 3G, Edge, GPRS
 or Maybe (Close to) Offline…
  • 31. This is Why Faster Sites are Be er!
  • 34. Performance Techniques Today Concatenation of Files Image Sprites Inline Images Domain Sharding
  • 36. Waiting for DOM and CSSOM to build the render tree. Render tree contains nodes to render the page. Layout computes the exact position and size. Paint turns the render tree into pixels on screen. Render-Tree Construction, Layout & Paint Source
  • 37. Waiting for CSS Avoids “Flash of Unstyled Content” (FOUC) Render Blocking CSS Source
  • 38. The parser has to stop for scripts before continuing to parse HTML. JavaScript can query and modify DOM and CSSOM. JavaScript blocks DOM construction unless explicitly declared as async. Render Blocking JavaScript Source
  • 39. Every request fetched inside of HEAD, will postpone the rendering of the page Loading JavaScript Source
  • 40. Every request takes roughly ~200ms Avoid unnecessary redirects Limit HTTP Requests Source
  • 41. Critical Resource Critical Path Length Critical Bytes The Critical Rendering Path Source
  • 42. Optimising the Critical Rendering Path = Ge ing stuff on the screen fast
  • 43. Minimize the number of critical resources. Minimize the number of critical bytes. Minimize the critical path length. A critical resource is a resource that can block initial rendering of a page. Source
  • 44.
  • 45.
  • 46.
  • 47.
  • 52. To reduce the load on the server, HTTP/1.1’s approach was to limit its TCP connections “A single-user client should not maintain more than 2 connections with any server or proxy.” In real life, browsers hold ~6 TCP connections simultaneously per origin.
  • 53. More Bandwidth Doesn’t Make a Big Difference An increase from 5Mbps to 10Mbps results in a disappointing 5% improvement in page load times. Source
  • 54. The water pipe example Bandwidth & Round-Trip Time
  • 55. PageLoadTime(ms) 0 800 1600 2400 3200 Bandwidth 1Mbps 2Mbps 3Mbps 4Mpbs 5Mbps 6Mbps 7Mbps 8Mbps 9Mbps 10Mbps Page Load Time as bandwidth increases Source
  • 56. Round-trip-times (RTT) have a bigger impact on performance, more than bandwidth does. Source
  • 57. Round-trip-times (RTT) have a bigger impact on performance, more than bandwidth does. Source
  • 58. PageLoadTime(ms) 0 800 1600 2400 3200 Bandwidth 1Mbps 2Mbps 3Mbps 4Mpbs 5Mbps 6Mbps 7Mbps 8Mbps 9Mbps 10Mbps PageLoadTime(ms) 0 1000 2000 3000 4000 RTT 240ms 220ms 200ms 180ms 160ms 140ms 120ms 100ms 80ms 60ms 40ms 20ms 0ms Page Load Time as bandwidth increases Page Load Time as latency decreases Source
  • 59. “HTTP2 produces the biggest performance gains on mobile bc it remedies high latency”
 — @patrickhamann #smashingconf
  • 60. PageLoadTime(ms) 0 1000 2000 3000 4000 RTT 240ms 220ms 200ms 180ms 160ms 140ms 120ms 100ms 80ms 60ms 40ms 20ms Page Load Time as latency decreases Source
  • 62. Multiplexing: allow concurrent requests across a single TCP connection; Allow browsers to prioritise assets so that vital resources of a page could are sent first; Compress and reduce HTTP headers; Server push: A server can push important resources to the browser before being asked for them.
  • 64. Networking protocol for low-latency transport of content over the web. Originally started out from the SPDY protocol, now standardised as HTTP version 2.
  • 65. • Multiplexing • Compressed headers • Asset Prioritisation & Dependencies • Server Push 
 (saves the time it takes the client to ask for the resources)
  • 66. HTTP/2 is backwards-compatible 
 with HTTP/1.1
  • 67. Building for Performance 
 with HTTP/2
  • 68. What do you need to enable HTTP/2?
  • 70. Google* uses secure connections as a ranking signal, and browsers are starting to flag non-h ps websites as ‘not secure’. Some HTML5 APIs will also require secure connections in the future (e.g. Geolocation). * Baidu Analytics includes a site speed section, so they might follow this trend in the future. Leveraging additional benefits of SSL
  • 73. Under HTTP/2, some of our current best practices might impact performance negatively. Let’s look at the new anti-pa erns.
  • 75. This was a workaround for the lack of parallelism in HTTP/1.x to reduce requests; Combining multiple files into one and fetch with one request. Need to wait of the entire file/response to arrive Concatenation of Files
  • 76. • Structure code to only deliver what’s needed • No need for additional build process steps • Optimise caching policies depending on change frequency of files New! Requests are cheap!
  • 77.
  • 78. Thanks to the new multiplexing ability of HTTP/2 resources don’t need to be queued anymore. Nevertheless, depending on the kind of image, and how they are used, spriting can still be the be er option in regards to compression and file size. Image Sprites
  • 79. Another workaround for the lack of parallelism in HTTP/1.x
 Besides increasing the file size of stylesheets etc., the resource can’t be cached and asset re-use will create unnecessary overhead Prioritisation features of HTTP/2 can’t be used Inline Images
  • 80. And one more workaround for the lack of multiplexing in HTTP/1.x Browsers can handle ~6 connections per origin, but domain sharding allows us to (theoretically) extend this to an unlimited amount of connections. Domain sharding will have a negative impact when used with HTTP/2. Domain Sharding Source !
  • 81. HTTP1.x HTTP2 Reduce DNS lookups ✓ ✓ Reuse TCP connections ✓ ✓ Use a Content Delivery Network ✓ ✓ Minimize number of HTTP redirects ✓ ✓ Eliminate unnecessary request bytes ✓ ✓ Compress assets during transfer ✓ ✓ Cache resources on the client ✓ ✓ Eliminate unnecessary resources ✓ ✓ Apply domain sharding Revisit (max 2) Remove Concatenate resources Careful & consider caching Remove Inline resources Careful & consider caching Remove (Server Push) Source
  • 82. Ge ing to HTTP/2
  • 83. Make the move to TLS & add a secure connection to your site
 (This can be done at any time and brings some additional benefits, even without HTTP/2) Make sure your server supports HTTP/2
 (Confirm with your hosting provider, roll your own or use a HTTP/2 supporting CDN service)
  • 84. Prepare your assets & adjust the build process for HTTP/2
 (Adjust to output the required files that best suit your needs and test your choices) Check Analytics & confirm your user’s browser support
 (This could affect users with older browsers negatively, and check for majority support) Implement your favourite HTTP/2 best practices and adjust your caching policies
 (Measure your performance before and a er the update and share your results with the world!!)
  • 85. ! Holger Bartel | @foobartel | FEDay, Guangzhou, China, 19/03/2016