SlideShare a Scribd company logo
1 of 41
Download to read offline
• Philip Tellis
• @bluesmoon
• ptellis@soasta.com
• SOASTA
• boomerang

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

1
FE Performance: Beginner to Expert to Crazy
Person
Philip Tellis / ptellis@soasta.com

Confoo 2014 / 2014-02-27

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

2
Get the most benefit with the least effort

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

3
0

Beginning Web Performance

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

4
Start with a really slow site

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

5
0.1

Start Measuring

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

6
Or use RUM for real user data (boomerang/mPulse)

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

7
0.2

enable gzip

http://slideshare.net/billwscott/improving-netflix-performance-experience
Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

8
You can pre-gzip

gzip_static in nginx

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

9
0.3

ImageOptim

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

10
0.4

Cache

Cache-control: public, max-age=31415926

http://www.mnot.net/cache_docs/

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

11
Yes, that was 10 million pies

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

12
0

Congratulations

You’ve just been promoted

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

13
1

What the Experts Do

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

14
1.1

CDN

Serve your root domain through a CDN

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

15
1.1

CDN

And make sure your CSS is on the same domain

http://www.jonathanklein.net/2014/02/revisiting-cookieless-domain.html

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

16
1.2

Split JavaScript

"critical": in the HEAD,
"enhancements": loaded async

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

17
1.3

Audit your CSS

Chrome WebDev tools
Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

18
1.4

Parallelise downloads

You can have higher bandwidth, you cannot have lower latency.
Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

19
1.5

Flush Early and Often

Get bytes to the client ASAP to avoid TCP Slow
Start, and speed up CSS

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

20
1.6

Increase initcwnd

Initial Congestion Window: Number of packets to
send before waiting for an ACK

http://www.cdnplanet.com/blog/tune-tcp-initcwnd-for-optimumperformance/

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

21
1.6

Increase initcwnd

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

22
1.6b

Also...

net.ipv4.tcp_slow_start_after_idle=0

http://www.lognormal.com/blog/2012/09/27/linux-tcpip-tuning/

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

23
1.7

PageSpeed

mod_pagespeed and ngx_pagespeed

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

24
Relax

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

25
2

You’ve reached crazyland

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

26
Sort in ascending order of signal latency

• Electrons through copper
• Light through fibre
• Pulsars
• Station Wagons
• Smoke Signals

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

27
Study real user data

Look for potential places to parallelise, predict or
cache

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

28
2.1 Pre-load

Pre-fetch assets required for the next page in a
process flow

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

29
2.1b pre-render

<link rel="prerender" href="url">

https://developers.google.com/chrome/whitepapers/prerender

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

30
2.2 Post-load

Fetch optional assets after onload

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

31
2.3 Detect broken accept-encoding

Many Windows anti-viruses and firewalls disable
gzip by munging the Accept-Encoding header

http://www.lognormal.com/blog/2012/08/17/accept-encoding-stats/

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

32
2.4 Prepare for HTTP/2.0

Multiple assets on the same connection and TLS by
default.
Breaks many of our rules.

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

33
2.5 Understand 3PoFs

Use blackhole.webpagetest.org

http://blog.patrickmeenan.com/2011/10/testing-for-frontend-spof.html

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

34
2.6 Understand the IFrame Loader Technique

Take required but non-critical assets out of the
critical path

http://www.lognormal.com/blog/2012/12/12/the-script-loader-pattern/

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

35
Can you predict round-trip-time?

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

36
Can you predict round-trip-time?

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

37
References

•
•
•
•
•
•
•
•
•
•
•
•

WebPageTest – http://webpagetest.org
Boomerang – http://lognormal.github.io/boomerang/doc/
SOASTA mPulse – http://www.soasta.com/free
Netflix gzip study – http://www.slideshare.net/billwscott/improving-netflix-performance-experience
Nginx gzip_static – http://wiki.nginx.org/HttpGzipStaticModule
ImageOptim – http://imageoptim.com/
Caching – http://www.mnot.net/cache_docs/
Same domain CSS – http://www.jonathanklein.net/2014/02/revisiting-cookieless-domain.html
initcwnd – http://www.cdnplanet.com/blog/tune-tcp-initcwnd-for-optimum-performance/
Linux TCP Tuning – http://www.lognormal.com/blog/2012/09/27/linux-tcpip-tuning/
Prerender – https://developers.google.com/chrome/whitepapers/prerender
FE SPoF – http://blog.patrickmeenan.com/2011/10/testing-for-frontend-spof.html

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

38
Thank You!
Questions?

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

39
• Philip Tellis
• @bluesmoon
• philip@bluesmoon.info
• www.SOASTA.com
• boomerang
• LogNormal Blog

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

40
Image Credits

• Apple Pie
http://www.flickr.com/photos/24609729@N00/3353226142/
• Kittens in a PC
http://www.flickr.com/photos/43525343@N08/6417971383/

Confoo 2014 / 2014-02-27

FE Performance: Beginner to Expert to Crazy Person

41

More Related Content

What's hot

Windows Server and Fast CGI Technologies For PHP
Windows Server and Fast CGI Technologies For PHPWindows Server and Fast CGI Technologies For PHP
Windows Server and Fast CGI Technologies For PHPTim Keller
 
The Modern Developer Toolbox
The Modern Developer ToolboxThe Modern Developer Toolbox
The Modern Developer ToolboxPablo Godel
 
Distributing UI Libraries: in a post Web-Component world
Distributing UI Libraries: in a post Web-Component worldDistributing UI Libraries: in a post Web-Component world
Distributing UI Libraries: in a post Web-Component worldRachael L Moore
 
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...Pablo Godel
 
Le Streaming d'API : pourquoi et comment transformer vos APIs statiques en do...
Le Streaming d'API : pourquoi et comment transformer vos APIs statiques en do...Le Streaming d'API : pourquoi et comment transformer vos APIs statiques en do...
Le Streaming d'API : pourquoi et comment transformer vos APIs statiques en do...Audrey Neveu
 
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....Gavin Pickin
 
Le Streaming d'API : pourquoi et comment transformer vos APIs statiques en do...
Le Streaming d'API : pourquoi et comment transformer vos APIs statiques en do...Le Streaming d'API : pourquoi et comment transformer vos APIs statiques en do...
Le Streaming d'API : pourquoi et comment transformer vos APIs statiques en do...Audrey Neveu
 
Can you contain the future - Docker, Container Technologies, The Future, and You
Can you contain the future - Docker, Container Technologies, The Future, and YouCan you contain the future - Docker, Container Technologies, The Future, and You
Can you contain the future - Docker, Container Technologies, The Future, and YouColdFusionConference
 
Converting Your Dev Environment to a Docker Stack - php[world]
Converting Your Dev Environment to a Docker Stack - php[world]Converting Your Dev Environment to a Docker Stack - php[world]
Converting Your Dev Environment to a Docker Stack - php[world]Dana Luther
 
HTTP/2 and Java: Current Status
HTTP/2 and Java: Current StatusHTTP/2 and Java: Current Status
HTTP/2 and Java: Current StatusSimone Bordet
 
Dev objective2015 lets git together
Dev objective2015 lets git togetherDev objective2015 lets git together
Dev objective2015 lets git togetherColdFusionConference
 
ZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small TeamsZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small TeamsJoe Ferguson
 
Converting Your Dev Environment to a Docker Stack - Cascadia
Converting Your Dev Environment to a Docker Stack - CascadiaConverting Your Dev Environment to a Docker Stack - Cascadia
Converting Your Dev Environment to a Docker Stack - CascadiaDana Luther
 
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsSymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsPablo Godel
 

What's hot (20)

Windows Server and Fast CGI Technologies For PHP
Windows Server and Fast CGI Technologies For PHPWindows Server and Fast CGI Technologies For PHP
Windows Server and Fast CGI Technologies For PHP
 
The Modern Developer Toolbox
The Modern Developer ToolboxThe Modern Developer Toolbox
The Modern Developer Toolbox
 
Distributing UI Libraries: in a post Web-Component world
Distributing UI Libraries: in a post Web-Component worldDistributing UI Libraries: in a post Web-Component world
Distributing UI Libraries: in a post Web-Component world
 
Read me
Read meRead me
Read me
 
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
 
Le Streaming d'API : pourquoi et comment transformer vos APIs statiques en do...
Le Streaming d'API : pourquoi et comment transformer vos APIs statiques en do...Le Streaming d'API : pourquoi et comment transformer vos APIs statiques en do...
Le Streaming d'API : pourquoi et comment transformer vos APIs statiques en do...
 
ColdFusion builder plugins
ColdFusion builder pluginsColdFusion builder plugins
ColdFusion builder plugins
 
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
 
Le Streaming d'API : pourquoi et comment transformer vos APIs statiques en do...
Le Streaming d'API : pourquoi et comment transformer vos APIs statiques en do...Le Streaming d'API : pourquoi et comment transformer vos APIs statiques en do...
Le Streaming d'API : pourquoi et comment transformer vos APIs statiques en do...
 
Can you contain the future - Docker, Container Technologies, The Future, and You
Can you contain the future - Docker, Container Technologies, The Future, and YouCan you contain the future - Docker, Container Technologies, The Future, and You
Can you contain the future - Docker, Container Technologies, The Future, and You
 
Securing Legacy CFML Code
Securing Legacy CFML CodeSecuring Legacy CFML Code
Securing Legacy CFML Code
 
Dependency Management With Pinto
Dependency Management With PintoDependency Management With Pinto
Dependency Management With Pinto
 
Converting Your Dev Environment to a Docker Stack - php[world]
Converting Your Dev Environment to a Docker Stack - php[world]Converting Your Dev Environment to a Docker Stack - php[world]
Converting Your Dev Environment to a Docker Stack - php[world]
 
Keep Applications Online
Keep Applications OnlineKeep Applications Online
Keep Applications Online
 
Realtime with websockets
Realtime with websocketsRealtime with websockets
Realtime with websockets
 
HTTP/2 and Java: Current Status
HTTP/2 and Java: Current StatusHTTP/2 and Java: Current Status
HTTP/2 and Java: Current Status
 
Dev objective2015 lets git together
Dev objective2015 lets git togetherDev objective2015 lets git together
Dev objective2015 lets git together
 
ZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small TeamsZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small Teams
 
Converting Your Dev Environment to a Docker Stack - Cascadia
Converting Your Dev Environment to a Docker Stack - CascadiaConverting Your Dev Environment to a Docker Stack - Cascadia
Converting Your Dev Environment to a Docker Stack - Cascadia
 
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsSymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
 

Similar to Frontend Performance: Beginner to Expert to Crazy Person

Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...
Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...
Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...Philip Tellis
 
PHP on Heroku: Deploying and Scaling Apps in the Cloud
PHP on Heroku: Deploying and Scaling Apps in the CloudPHP on Heroku: Deploying and Scaling Apps in the Cloud
PHP on Heroku: Deploying and Scaling Apps in the CloudSalesforce Developers
 
Don't screw it up: how to build durable web apis @ PHPDay 2014 in Verona (ITA)
Don't screw it up: how to build durable web apis @ PHPDay 2014 in Verona (ITA)Don't screw it up: how to build durable web apis @ PHPDay 2014 in Verona (ITA)
Don't screw it up: how to build durable web apis @ PHPDay 2014 in Verona (ITA)Alessandro Nadalin
 
Don't screw it up: how to build durable web apis
Don't screw it up: how to build durable web apisDon't screw it up: how to build durable web apis
Don't screw it up: how to build durable web apisAlessandro Cinelli (cirpo)
 
Deployment with capifony
Deployment with capifonyDeployment with capifony
Deployment with capifonyJan De Coster
 
Deployment tales
Deployment talesDeployment tales
Deployment talesAmoniac OÜ
 
Netflix CDN and Open Source
Netflix CDN and Open SourceNetflix CDN and Open Source
Netflix CDN and Open SourceGleb Smirnoff
 
Quick and Dirty Python Deployments with Heroku
Quick and Dirty Python Deployments with HerokuQuick and Dirty Python Deployments with Heroku
Quick and Dirty Python Deployments with HerokuDaniel Pritchett
 
Chicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - MediaflyChicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - MediaflyMediafly
 
2014-08-19 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Chicago
2014-08-19 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Chicago2014-08-19 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Chicago
2014-08-19 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Chicagogarrett honeycutt
 
WordCamp Belfast DevOps for Beginners
WordCamp Belfast DevOps for BeginnersWordCamp Belfast DevOps for Beginners
WordCamp Belfast DevOps for BeginnersStewart Ritchie
 
2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattle
2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattle2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattle
2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattlegarrett honeycutt
 
GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)
GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)
GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)Phil Wilkins
 
How to successfully migrate to DevOps .pdf
How to successfully migrate to DevOps .pdfHow to successfully migrate to DevOps .pdf
How to successfully migrate to DevOps .pdfMarian Marinov
 
Devoxx Maroc 2015 HTTP 1, HTTP 2 and folks
Devoxx Maroc  2015 HTTP 1, HTTP 2 and folksDevoxx Maroc  2015 HTTP 1, HTTP 2 and folks
Devoxx Maroc 2015 HTTP 1, HTTP 2 and folksNicolas Martignole
 
Advanced deployment scenarios (netcoreconf)
Advanced deployment scenarios (netcoreconf)Advanced deployment scenarios (netcoreconf)
Advanced deployment scenarios (netcoreconf)Sergio Navarro Pino
 
9 steps to awesome with kubernetes
9 steps to awesome with kubernetes9 steps to awesome with kubernetes
9 steps to awesome with kubernetesBaraniBuuny
 
Modern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl ProgrammerModern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl ProgrammerJohn Anderson
 

Similar to Frontend Performance: Beginner to Expert to Crazy Person (20)

Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...
Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...
Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...
 
PHP on Heroku: Deploying and Scaling Apps in the Cloud
PHP on Heroku: Deploying and Scaling Apps in the CloudPHP on Heroku: Deploying and Scaling Apps in the Cloud
PHP on Heroku: Deploying and Scaling Apps in the Cloud
 
Don't screw it up! How to build durable API
Don't screw it up! How to build durable API Don't screw it up! How to build durable API
Don't screw it up! How to build durable API
 
Don't screw it up: how to build durable web apis @ PHPDay 2014 in Verona (ITA)
Don't screw it up: how to build durable web apis @ PHPDay 2014 in Verona (ITA)Don't screw it up: how to build durable web apis @ PHPDay 2014 in Verona (ITA)
Don't screw it up: how to build durable web apis @ PHPDay 2014 in Verona (ITA)
 
Don't screw it up: how to build durable web apis
Don't screw it up: how to build durable web apisDon't screw it up: how to build durable web apis
Don't screw it up: how to build durable web apis
 
Deployment with capifony
Deployment with capifonyDeployment with capifony
Deployment with capifony
 
Deployment tales
Deployment talesDeployment tales
Deployment tales
 
Deployment tales
Deployment talesDeployment tales
Deployment tales
 
Netflix CDN and Open Source
Netflix CDN and Open SourceNetflix CDN and Open Source
Netflix CDN and Open Source
 
Quick and Dirty Python Deployments with Heroku
Quick and Dirty Python Deployments with HerokuQuick and Dirty Python Deployments with Heroku
Quick and Dirty Python Deployments with Heroku
 
Chicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - MediaflyChicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - Mediafly
 
2014-08-19 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Chicago
2014-08-19 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Chicago2014-08-19 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Chicago
2014-08-19 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Chicago
 
WordCamp Belfast DevOps for Beginners
WordCamp Belfast DevOps for BeginnersWordCamp Belfast DevOps for Beginners
WordCamp Belfast DevOps for Beginners
 
2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattle
2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattle2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattle
2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattle
 
GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)
GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)
GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)
 
How to successfully migrate to DevOps .pdf
How to successfully migrate to DevOps .pdfHow to successfully migrate to DevOps .pdf
How to successfully migrate to DevOps .pdf
 
Devoxx Maroc 2015 HTTP 1, HTTP 2 and folks
Devoxx Maroc  2015 HTTP 1, HTTP 2 and folksDevoxx Maroc  2015 HTTP 1, HTTP 2 and folks
Devoxx Maroc 2015 HTTP 1, HTTP 2 and folks
 
Advanced deployment scenarios (netcoreconf)
Advanced deployment scenarios (netcoreconf)Advanced deployment scenarios (netcoreconf)
Advanced deployment scenarios (netcoreconf)
 
9 steps to awesome with kubernetes
9 steps to awesome with kubernetes9 steps to awesome with kubernetes
9 steps to awesome with kubernetes
 
Modern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl ProgrammerModern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl Programmer
 

More from Philip Tellis

Improving D3 Performance with CANVAS and other Hacks
Improving D3 Performance with CANVAS and other HacksImproving D3 Performance with CANVAS and other Hacks
Improving D3 Performance with CANVAS and other HacksPhilip Tellis
 
Beyond Page Level Metrics
Beyond Page Level MetricsBeyond Page Level Metrics
Beyond Page Level MetricsPhilip Tellis
 
RUM Distillation 101 -- Part I
RUM Distillation 101 -- Part IRUM Distillation 101 -- Part I
RUM Distillation 101 -- Part IPhilip Tellis
 
Improving 3rd Party Script Performance With IFrames
Improving 3rd Party Script Performance With IFramesImproving 3rd Party Script Performance With IFrames
Improving 3rd Party Script Performance With IFramesPhilip Tellis
 
Abusing JavaScript to measure Web Performance, or, "how does boomerang work?"
Abusing JavaScript to measure Web Performance, or, "how does boomerang work?"Abusing JavaScript to measure Web Performance, or, "how does boomerang work?"
Abusing JavaScript to measure Web Performance, or, "how does boomerang work?"Philip Tellis
 
The Statistics of Web Performance Analysis
The Statistics of Web Performance AnalysisThe Statistics of Web Performance Analysis
The Statistics of Web Performance AnalysisPhilip Tellis
 
Abusing JavaScript to Measure Web Performance
Abusing JavaScript to Measure Web PerformanceAbusing JavaScript to Measure Web Performance
Abusing JavaScript to Measure Web PerformancePhilip Tellis
 
Analysing network characteristics with JavaScript
Analysing network characteristics with JavaScriptAnalysing network characteristics with JavaScript
Analysing network characteristics with JavaScriptPhilip Tellis
 
A Node.JS bag of goodies for analyzing Web Traffic
A Node.JS bag of goodies for analyzing Web TrafficA Node.JS bag of goodies for analyzing Web Traffic
A Node.JS bag of goodies for analyzing Web TrafficPhilip Tellis
 
Messing with JavaScript and the DOM to measure network characteristics
Messing with JavaScript and the DOM to measure network characteristicsMessing with JavaScript and the DOM to measure network characteristics
Messing with JavaScript and the DOM to measure network characteristicsPhilip Tellis
 
Boomerang: How fast do users think your site is?
Boomerang: How fast do users think your site is?Boomerang: How fast do users think your site is?
Boomerang: How fast do users think your site is?Philip Tellis
 
Boomerang at FOSS.IN/2010
Boomerang at FOSS.IN/2010Boomerang at FOSS.IN/2010
Boomerang at FOSS.IN/2010Philip Tellis
 
Measuring the web with Boomerang (YUIConf 2010)
Measuring the web with Boomerang (YUIConf 2010)Measuring the web with Boomerang (YUIConf 2010)
Measuring the web with Boomerang (YUIConf 2010)Philip Tellis
 
Boomerang at the Boston Web Performance meetup
Boomerang at the Boston Web Performance meetupBoomerang at the Boston Web Performance meetup
Boomerang at the Boston Web Performance meetupPhilip Tellis
 
Boomerang @ NY Web Perf meetup
Boomerang @ NY Web Perf meetupBoomerang @ NY Web Perf meetup
Boomerang @ NY Web Perf meetupPhilip Tellis
 
Measuring the web with boomerang
Measuring the web with boomerangMeasuring the web with boomerang
Measuring the web with boomerangPhilip Tellis
 

More from Philip Tellis (20)

Improving D3 Performance with CANVAS and other Hacks
Improving D3 Performance with CANVAS and other HacksImproving D3 Performance with CANVAS and other Hacks
Improving D3 Performance with CANVAS and other Hacks
 
Beyond Page Level Metrics
Beyond Page Level MetricsBeyond Page Level Metrics
Beyond Page Level Metrics
 
mmm... beacons
mmm... beaconsmmm... beacons
mmm... beacons
 
RUM Distillation 101 -- Part I
RUM Distillation 101 -- Part IRUM Distillation 101 -- Part I
RUM Distillation 101 -- Part I
 
Improving 3rd Party Script Performance With IFrames
Improving 3rd Party Script Performance With IFramesImproving 3rd Party Script Performance With IFrames
Improving 3rd Party Script Performance With IFrames
 
Extending Boomerang
Extending BoomerangExtending Boomerang
Extending Boomerang
 
Abusing JavaScript to measure Web Performance, or, "how does boomerang work?"
Abusing JavaScript to measure Web Performance, or, "how does boomerang work?"Abusing JavaScript to measure Web Performance, or, "how does boomerang work?"
Abusing JavaScript to measure Web Performance, or, "how does boomerang work?"
 
The Statistics of Web Performance Analysis
The Statistics of Web Performance AnalysisThe Statistics of Web Performance Analysis
The Statistics of Web Performance Analysis
 
Abusing JavaScript to Measure Web Performance
Abusing JavaScript to Measure Web PerformanceAbusing JavaScript to Measure Web Performance
Abusing JavaScript to Measure Web Performance
 
Rum for Breakfast
Rum for BreakfastRum for Breakfast
Rum for Breakfast
 
Analysing network characteristics with JavaScript
Analysing network characteristics with JavaScriptAnalysing network characteristics with JavaScript
Analysing network characteristics with JavaScript
 
A Node.JS bag of goodies for analyzing Web Traffic
A Node.JS bag of goodies for analyzing Web TrafficA Node.JS bag of goodies for analyzing Web Traffic
A Node.JS bag of goodies for analyzing Web Traffic
 
Input sanitization
Input sanitizationInput sanitization
Input sanitization
 
Messing with JavaScript and the DOM to measure network characteristics
Messing with JavaScript and the DOM to measure network characteristicsMessing with JavaScript and the DOM to measure network characteristics
Messing with JavaScript and the DOM to measure network characteristics
 
Boomerang: How fast do users think your site is?
Boomerang: How fast do users think your site is?Boomerang: How fast do users think your site is?
Boomerang: How fast do users think your site is?
 
Boomerang at FOSS.IN/2010
Boomerang at FOSS.IN/2010Boomerang at FOSS.IN/2010
Boomerang at FOSS.IN/2010
 
Measuring the web with Boomerang (YUIConf 2010)
Measuring the web with Boomerang (YUIConf 2010)Measuring the web with Boomerang (YUIConf 2010)
Measuring the web with Boomerang (YUIConf 2010)
 
Boomerang at the Boston Web Performance meetup
Boomerang at the Boston Web Performance meetupBoomerang at the Boston Web Performance meetup
Boomerang at the Boston Web Performance meetup
 
Boomerang @ NY Web Perf meetup
Boomerang @ NY Web Perf meetupBoomerang @ NY Web Perf meetup
Boomerang @ NY Web Perf meetup
 
Measuring the web with boomerang
Measuring the web with boomerangMeasuring the web with boomerang
Measuring the web with boomerang
 

Recently uploaded

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Recently uploaded (20)

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Frontend Performance: Beginner to Expert to Crazy Person

  • 1. • Philip Tellis • @bluesmoon • ptellis@soasta.com • SOASTA • boomerang Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 1
  • 2. FE Performance: Beginner to Expert to Crazy Person Philip Tellis / ptellis@soasta.com Confoo 2014 / 2014-02-27 Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 2
  • 3. Get the most benefit with the least effort Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 3
  • 4. 0 Beginning Web Performance Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 4
  • 5. Start with a really slow site Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 5
  • 6. 0.1 Start Measuring Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 6
  • 7. Or use RUM for real user data (boomerang/mPulse) Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 7
  • 8. 0.2 enable gzip http://slideshare.net/billwscott/improving-netflix-performance-experience Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 8
  • 9. You can pre-gzip gzip_static in nginx Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 9
  • 10. 0.3 ImageOptim Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 10
  • 11. 0.4 Cache Cache-control: public, max-age=31415926 http://www.mnot.net/cache_docs/ Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 11
  • 12. Yes, that was 10 million pies Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 12
  • 13. 0 Congratulations You’ve just been promoted Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 13
  • 14. 1 What the Experts Do Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 14
  • 15. 1.1 CDN Serve your root domain through a CDN Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 15
  • 16. 1.1 CDN And make sure your CSS is on the same domain http://www.jonathanklein.net/2014/02/revisiting-cookieless-domain.html Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 16
  • 17. 1.2 Split JavaScript "critical": in the HEAD, "enhancements": loaded async Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 17
  • 18. 1.3 Audit your CSS Chrome WebDev tools Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 18
  • 19. 1.4 Parallelise downloads You can have higher bandwidth, you cannot have lower latency. Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 19
  • 20. 1.5 Flush Early and Often Get bytes to the client ASAP to avoid TCP Slow Start, and speed up CSS Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 20
  • 21. 1.6 Increase initcwnd Initial Congestion Window: Number of packets to send before waiting for an ACK http://www.cdnplanet.com/blog/tune-tcp-initcwnd-for-optimumperformance/ Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 21
  • 22. 1.6 Increase initcwnd Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 22
  • 24. 1.7 PageSpeed mod_pagespeed and ngx_pagespeed Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 24
  • 25. Relax Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 25
  • 26. 2 You’ve reached crazyland Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 26
  • 27. Sort in ascending order of signal latency • Electrons through copper • Light through fibre • Pulsars • Station Wagons • Smoke Signals Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 27
  • 28. Study real user data Look for potential places to parallelise, predict or cache Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 28
  • 29. 2.1 Pre-load Pre-fetch assets required for the next page in a process flow Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 29
  • 30. 2.1b pre-render <link rel="prerender" href="url"> https://developers.google.com/chrome/whitepapers/prerender Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 30
  • 31. 2.2 Post-load Fetch optional assets after onload Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 31
  • 32. 2.3 Detect broken accept-encoding Many Windows anti-viruses and firewalls disable gzip by munging the Accept-Encoding header http://www.lognormal.com/blog/2012/08/17/accept-encoding-stats/ Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 32
  • 33. 2.4 Prepare for HTTP/2.0 Multiple assets on the same connection and TLS by default. Breaks many of our rules. Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 33
  • 34. 2.5 Understand 3PoFs Use blackhole.webpagetest.org http://blog.patrickmeenan.com/2011/10/testing-for-frontend-spof.html Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 34
  • 35. 2.6 Understand the IFrame Loader Technique Take required but non-critical assets out of the critical path http://www.lognormal.com/blog/2012/12/12/the-script-loader-pattern/ Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 35
  • 36. Can you predict round-trip-time? Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 36
  • 37. Can you predict round-trip-time? Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 37
  • 38. References • • • • • • • • • • • • WebPageTest – http://webpagetest.org Boomerang – http://lognormal.github.io/boomerang/doc/ SOASTA mPulse – http://www.soasta.com/free Netflix gzip study – http://www.slideshare.net/billwscott/improving-netflix-performance-experience Nginx gzip_static – http://wiki.nginx.org/HttpGzipStaticModule ImageOptim – http://imageoptim.com/ Caching – http://www.mnot.net/cache_docs/ Same domain CSS – http://www.jonathanklein.net/2014/02/revisiting-cookieless-domain.html initcwnd – http://www.cdnplanet.com/blog/tune-tcp-initcwnd-for-optimum-performance/ Linux TCP Tuning – http://www.lognormal.com/blog/2012/09/27/linux-tcpip-tuning/ Prerender – https://developers.google.com/chrome/whitepapers/prerender FE SPoF – http://blog.patrickmeenan.com/2011/10/testing-for-frontend-spof.html Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 38
  • 39. Thank You! Questions? Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 39
  • 40. • Philip Tellis • @bluesmoon • philip@bluesmoon.info • www.SOASTA.com • boomerang • LogNormal Blog Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 40
  • 41. Image Credits • Apple Pie http://www.flickr.com/photos/24609729@N00/3353226142/ • Kittens in a PC http://www.flickr.com/photos/43525343@N08/6417971383/ Confoo 2014 / 2014-02-27 FE Performance: Beginner to Expert to Crazy Person 41