SlideShare une entreprise Scribd logo
1  sur  42
Speed Matters
   Mark Stanton
    @MarkStanto
Does Speed Matter?
   •   2 sec delay reduces revenue by 4%

   •   1/2 sec drops traffic by 20%

   •   fastest 10% of users stay 50%
       longer than the slowest 10%

   •   10ms = one man-year per day
Terminology

•   Empty cache / Primed cache
•   Refresh / Revisit
•   Page ready / Page complete
•   Throughput / Latency
HTTP in 60 seconds
•   Initial Request
                      GET /assets/logo.png HTTP/1.1
                      Host: wds-demo.gruden.int
                      User-Agent: Mozilla/5.0...

                      HTTP/1.x 200 OK
                      Server: Apache/2.2.11...
                      Last-Modified: Wed, 09 Sep 2009 17:36:00 GMT
                      Content-Length: 4067
                      Content-Type: image/png



•   Subsequent Requests
                      GET /assets/logo.png HTTP/1.1
                      Host: wds-demo.gruden.int
                      User-Agent: Mozilla/5.0...
                      If-Modified-Since: Wed, 09 Sep 2009 17:36:00 GMT

                      HTTP/1.x 304 Not Modified
                      Server: Apache/1.3.41 ...
Case Study
IE6




      21.8s
Firefox3




      18.6s
Image Optimisation




                  755KB
                 Reduction!
Image Optimisation


24 bit PNG




                  512KB
                 Reduction!
Combine JS
•   Before:




•   After:



                           7 Fewer
                           Requests!
Combine CSS
•   Before:




•   After:



                            6 Fewer
                            Requests!
JS to Bottom




                Page Ready
               1 sec Faster!
Cache Control


•   ETags
•   Expires
Cache Control
•   Etag: "1c014-287d-f824c1c0"



•   If-None-Match: "1c014-287d-f824c1c0"



•   304 Not Modified
Cache Control


•   Expires: Wed, 08 Oct 2010 02:03:51 GMT
•   304 Not Modified
Cache Control
•   Before:
    <VirtualHost *:80>
           ServerName wds-demo.gruden.int
           DocumentRoot ...

           ErrorLog /private/var/log/apache2/wds-demo-error_log
           CustomLog /private/var/log/apache2/wds-demo-access_log common
    </VirtualHost>




•   After:
    <VirtualHost *:80>
           ServerName wds-demo.gruden.int
           DocumentRoot ...

           ErrorLog /private/var/log/apache2/wds-demo-error_log
           CustomLog /private/var/log/apache2/wds-demo-access_log common

           ExpiresActive on
           ExpiresDefault "access plus 1 year"

           FileETag none
    </VirtualHost>
                                                                           90% Fewer
                                                                             304s!
Cache Control

•   Cache-Control: "max-age=0, no-cache, no-
    store, must-revalidate"
•   Pragma: "no-cache"
•   Expires: "Wed, 11 Jan 1984 05:00:00 GMT"


                                           Doh!
Minify




           24KB
         Reduction!
Minify
GZip
•   Before:
    <VirtualHost *:80>
           ServerName wds-demo.gruden.int
           DocumentRoot ...

           ...

           ExpiresActive on
           ExpiresDefault "access plus 1 year"

           FileETag none
    </VirtualHost>


•   After:
    <VirtualHost *:80>
           ServerName wds-demo.gruden.int
           DocumentRoot ...

           AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript

           ...

           ExpiresActive on
           ExpiresDefault "access plus 1 year"                                 96KB
           FileETag none
    </VirtualHost>                                                           Reduction!
Split Components
 Across Domains




                  2.5 sec
               Faster in IE6!
Sprites
           139KB
          Reduction!




          35 Fewer
          Requests!
Restructure Content
Restructure Content


•   Logo into HTML
•   Lazy load rotators
Restructure Content




                  Page Ready
                 5 sec Faster!
CSS Selectors
•   Before:




•   After:



                             100 ms
                             Faster!
Huh?


100 ms
Faster!
Summary
•   Optimised Images         •   Minify

•   Combined JS              •   GZip

•   Combined CSS             •   Split Domains

•   JS to the Bottom         •   Sprites

•   Cache Control: Expires   •   Restructure Content
IE6 - Original




          21.8s
IE6 - Final




         6.0s
Firefox3 - Original




            18.6s
Firefox3 - Final




           4.1s
Tools
•   Firefox Plugins
    •   Firebug

    •   YSlow

    •   Page Speed

    •   Cache Status

    •   LiveHTTPHeaders

•   Charles Proxy
Tools

•   http://compressorrater.thruhere.net/
•   http://developer.yahoo.com/yslow/smushit/
•   http://spriteme.org/
•   http://spritegen.website-performance.org/
Tools

•   http://spritegen.website-performance.org/
•   http://spriteme.org/
•   http://developer.yahoo.com/yslow/smushit/
•   http://compressorrater.thruhere.net/
Hat Tip
•   http://stevesouders.com/
•   http://developer.yahoo.com/performance/
Conclusion


•   Look for low hanging fruit
•   Make incremental improvements
•   Incorporate into your process
Conclusion

•   Small upfront investment - continuous benefit
•   Reduced bandwidth
•   Reduced load times
•   Everyone lives happily ever after
Thanks


•   http://delicious.com/markstanton/speed-talk
•   @MarkStanto
Pop Quiz
Pop Quiz
Pop Quiz

Contenu connexe

Tendances

Highly available Drupal on a Raspberry Pi cluster
Highly available Drupal on a Raspberry Pi clusterHighly available Drupal on a Raspberry Pi cluster
Highly available Drupal on a Raspberry Pi clusterJeff Geerling
 
Configuring Apache Servers for Better Web Perormance
Configuring Apache Servers for Better Web PerormanceConfiguring Apache Servers for Better Web Perormance
Configuring Apache Servers for Better Web PerormanceSpark::red
 
Reverse proxy & web cache with NGINX, HAProxy and Varnish
Reverse proxy & web cache with NGINX, HAProxy and VarnishReverse proxy & web cache with NGINX, HAProxy and Varnish
Reverse proxy & web cache with NGINX, HAProxy and VarnishEl Mahdi Benzekri
 
2013 - Igor Sysoev - NGINx: origen, evolución y futuro - PHP Conference Argen...
2013 - Igor Sysoev - NGINx: origen, evolución y futuro - PHP Conference Argen...2013 - Igor Sysoev - NGINx: origen, evolución y futuro - PHP Conference Argen...
2013 - Igor Sysoev - NGINx: origen, evolución y futuro - PHP Conference Argen...PHP Conference Argentina
 
Cluster Fudge: Recipes for WordPress in the Cloud (WordCamp Austin 2014 Speaker)
Cluster Fudge: Recipes for WordPress in the Cloud (WordCamp Austin 2014 Speaker)Cluster Fudge: Recipes for WordPress in the Cloud (WordCamp Austin 2014 Speaker)
Cluster Fudge: Recipes for WordPress in the Cloud (WordCamp Austin 2014 Speaker)Grant Norwood
 
Usenix LISA 2012 - Choosing a Proxy
Usenix LISA 2012 - Choosing a ProxyUsenix LISA 2012 - Choosing a Proxy
Usenix LISA 2012 - Choosing a ProxyLeif Hedstrom
 
NGINX High-performance Caching
NGINX High-performance CachingNGINX High-performance Caching
NGINX High-performance CachingNGINX, Inc.
 
High Performance WordPress II
High Performance WordPress IIHigh Performance WordPress II
High Performance WordPress IIBarry Abrahamson
 
Mitigating Security Threats with Fastly - Joe Williams at Fastly Altitude 2015
Mitigating Security Threats with Fastly - Joe Williams at Fastly Altitude 2015Mitigating Security Threats with Fastly - Joe Williams at Fastly Altitude 2015
Mitigating Security Threats with Fastly - Joe Williams at Fastly Altitude 2015Fastly
 
Adobe CQ5 for Developers - Introduction
Adobe CQ5 for Developers - IntroductionAdobe CQ5 for Developers - Introduction
Adobe CQ5 for Developers - IntroductionTekno Point
 
DotNet MVC and webpack + Babel + react
DotNet MVC and webpack + Babel + reactDotNet MVC and webpack + Babel + react
DotNet MVC and webpack + Babel + reactChen-Tien Tsai
 
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQPolyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQChristian Posta
 
CNPM: Private NPM for Company / 企業級私有NPM
CNPM: Private NPM for Company / 企業級私有NPMCNPM: Private NPM for Company / 企業級私有NPM
CNPM: Private NPM for Company / 企業級私有NPMFeng Yuan
 
Building a better web
Building a better webBuilding a better web
Building a better webFastly
 
PHP projects beyond the LAMP stack
PHP projects beyond the LAMP stackPHP projects beyond the LAMP stack
PHP projects beyond the LAMP stackCodemotion
 
Scaling and Managing Selenium Grid
Scaling and Managing Selenium GridScaling and Managing Selenium Grid
Scaling and Managing Selenium Griddimakovalenko
 
Memcached: What is it and what does it do?
Memcached: What is it and what does it do?Memcached: What is it and what does it do?
Memcached: What is it and what does it do?Brian Moon
 

Tendances (20)

Highly available Drupal on a Raspberry Pi cluster
Highly available Drupal on a Raspberry Pi clusterHighly available Drupal on a Raspberry Pi cluster
Highly available Drupal on a Raspberry Pi cluster
 
Ui perf
Ui perfUi perf
Ui perf
 
Configuring Apache Servers for Better Web Perormance
Configuring Apache Servers for Better Web PerormanceConfiguring Apache Servers for Better Web Perormance
Configuring Apache Servers for Better Web Perormance
 
Reverse proxy & web cache with NGINX, HAProxy and Varnish
Reverse proxy & web cache with NGINX, HAProxy and VarnishReverse proxy & web cache with NGINX, HAProxy and Varnish
Reverse proxy & web cache with NGINX, HAProxy and Varnish
 
2013 - Igor Sysoev - NGINx: origen, evolución y futuro - PHP Conference Argen...
2013 - Igor Sysoev - NGINx: origen, evolución y futuro - PHP Conference Argen...2013 - Igor Sysoev - NGINx: origen, evolución y futuro - PHP Conference Argen...
2013 - Igor Sysoev - NGINx: origen, evolución y futuro - PHP Conference Argen...
 
Cluster Fudge: Recipes for WordPress in the Cloud (WordCamp Austin 2014 Speaker)
Cluster Fudge: Recipes for WordPress in the Cloud (WordCamp Austin 2014 Speaker)Cluster Fudge: Recipes for WordPress in the Cloud (WordCamp Austin 2014 Speaker)
Cluster Fudge: Recipes for WordPress in the Cloud (WordCamp Austin 2014 Speaker)
 
Usenix LISA 2012 - Choosing a Proxy
Usenix LISA 2012 - Choosing a ProxyUsenix LISA 2012 - Choosing a Proxy
Usenix LISA 2012 - Choosing a Proxy
 
NGINX High-performance Caching
NGINX High-performance CachingNGINX High-performance Caching
NGINX High-performance Caching
 
High Performance WordPress II
High Performance WordPress IIHigh Performance WordPress II
High Performance WordPress II
 
Mitigating Security Threats with Fastly - Joe Williams at Fastly Altitude 2015
Mitigating Security Threats with Fastly - Joe Williams at Fastly Altitude 2015Mitigating Security Threats with Fastly - Joe Williams at Fastly Altitude 2015
Mitigating Security Threats with Fastly - Joe Williams at Fastly Altitude 2015
 
Adobe CQ5 for Developers - Introduction
Adobe CQ5 for Developers - IntroductionAdobe CQ5 for Developers - Introduction
Adobe CQ5 for Developers - Introduction
 
DotNet MVC and webpack + Babel + react
DotNet MVC and webpack + Babel + reactDotNet MVC and webpack + Babel + react
DotNet MVC and webpack + Babel + react
 
SSDs are Awesome
SSDs are AwesomeSSDs are Awesome
SSDs are Awesome
 
Into The Box 2018 Ortus Keynote
Into The Box 2018 Ortus KeynoteInto The Box 2018 Ortus Keynote
Into The Box 2018 Ortus Keynote
 
Polyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQPolyglot Messaging with Apache ActiveMQ
Polyglot Messaging with Apache ActiveMQ
 
CNPM: Private NPM for Company / 企業級私有NPM
CNPM: Private NPM for Company / 企業級私有NPMCNPM: Private NPM for Company / 企業級私有NPM
CNPM: Private NPM for Company / 企業級私有NPM
 
Building a better web
Building a better webBuilding a better web
Building a better web
 
PHP projects beyond the LAMP stack
PHP projects beyond the LAMP stackPHP projects beyond the LAMP stack
PHP projects beyond the LAMP stack
 
Scaling and Managing Selenium Grid
Scaling and Managing Selenium GridScaling and Managing Selenium Grid
Scaling and Managing Selenium Grid
 
Memcached: What is it and what does it do?
Memcached: What is it and what does it do?Memcached: What is it and what does it do?
Memcached: What is it and what does it do?
 

Similaire à Speed Matters

Page Performance
Page PerformancePage Performance
Page Performanceatorreno
 
Caching your rails application
Caching your rails applicationCaching your rails application
Caching your rails applicationArrrrCamp
 
High performance website
High performance websiteHigh performance website
High performance websiteChamnap Chhorn
 
PAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark TomlinsonPAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark TomlinsonNeotys
 
Optimizing Your Frontend Performance
Optimizing Your Frontend PerformanceOptimizing Your Frontend Performance
Optimizing Your Frontend PerformanceThomas Weinert
 
Pankov Artem.Improving drupal performance www.hr portal.ru.DrupalCamp Kyiv 2011
Pankov Artem.Improving drupal performance www.hr portal.ru.DrupalCamp Kyiv 2011Pankov Artem.Improving drupal performance www.hr portal.ru.DrupalCamp Kyiv 2011
Pankov Artem.Improving drupal performance www.hr portal.ru.DrupalCamp Kyiv 2011camp_drupal_ua
 
Joomla Site Optimization
Joomla Site OptimizationJoomla Site Optimization
Joomla Site OptimizationPerry Wirth
 
Harder, Better, Faster, Stronger
Harder, Better, Faster, StrongerHarder, Better, Faster, Stronger
Harder, Better, Faster, StrongerDavid Engel
 
Developer Tools And Page Speed
Developer  Tools And  Page  SpeedDeveloper  Tools And  Page  Speed
Developer Tools And Page SpeedLina Shamiah
 
Don't make me wait! or Building High-Performance Web Applications
Don't make me wait! or Building High-Performance Web ApplicationsDon't make me wait! or Building High-Performance Web Applications
Don't make me wait! or Building High-Performance Web ApplicationsStoyan Stefanov
 
Apache Performance Tuning: Scaling Out
Apache Performance Tuning: Scaling OutApache Performance Tuning: Scaling Out
Apache Performance Tuning: Scaling OutSander Temme
 
Going on an HTTP Diet: Front-End Web Performance
Going on an HTTP Diet: Front-End Web PerformanceGoing on an HTTP Diet: Front-End Web Performance
Going on an HTTP Diet: Front-End Web PerformanceAdam Norwood
 
My Site is slow - Drupal Camp London 2013
My Site is slow - Drupal Camp London 2013My Site is slow - Drupal Camp London 2013
My Site is slow - Drupal Camp London 2013hernanibf
 
Building Faster Websites
Building Faster WebsitesBuilding Faster Websites
Building Faster WebsitesCraig Walker
 
Choosing A Proxy Server - Apachecon 2014
Choosing A Proxy Server - Apachecon 2014Choosing A Proxy Server - Apachecon 2014
Choosing A Proxy Server - Apachecon 2014bryan_call
 
Webinar - DreamObjects/Ceph Case Study
Webinar - DreamObjects/Ceph Case StudyWebinar - DreamObjects/Ceph Case Study
Webinar - DreamObjects/Ceph Case StudyCeph Community
 
Silverlight Wireshark Analysis
Silverlight Wireshark AnalysisSilverlight Wireshark Analysis
Silverlight Wireshark AnalysisYoss Cohen
 

Similaire à Speed Matters (20)

performance.ppt
performance.pptperformance.ppt
performance.ppt
 
Page Performance
Page PerformancePage Performance
Page Performance
 
Caching your rails application
Caching your rails applicationCaching your rails application
Caching your rails application
 
High performance website
High performance websiteHigh performance website
High performance website
 
PAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark TomlinsonPAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark Tomlinson
 
Optimizing Your Frontend Performance
Optimizing Your Frontend PerformanceOptimizing Your Frontend Performance
Optimizing Your Frontend Performance
 
Pankov Artem.Improving drupal performance www.hr portal.ru.DrupalCamp Kyiv 2011
Pankov Artem.Improving drupal performance www.hr portal.ru.DrupalCamp Kyiv 2011Pankov Artem.Improving drupal performance www.hr portal.ru.DrupalCamp Kyiv 2011
Pankov Artem.Improving drupal performance www.hr portal.ru.DrupalCamp Kyiv 2011
 
Joomla Site Optimization
Joomla Site OptimizationJoomla Site Optimization
Joomla Site Optimization
 
Harder, Better, Faster, Stronger
Harder, Better, Faster, StrongerHarder, Better, Faster, Stronger
Harder, Better, Faster, Stronger
 
Developer Tools And Page Speed
Developer  Tools And  Page  SpeedDeveloper  Tools And  Page  Speed
Developer Tools And Page Speed
 
Don't make me wait! or Building High-Performance Web Applications
Don't make me wait! or Building High-Performance Web ApplicationsDon't make me wait! or Building High-Performance Web Applications
Don't make me wait! or Building High-Performance Web Applications
 
Apache Performance Tuning: Scaling Out
Apache Performance Tuning: Scaling OutApache Performance Tuning: Scaling Out
Apache Performance Tuning: Scaling Out
 
Going on an HTTP Diet: Front-End Web Performance
Going on an HTTP Diet: Front-End Web PerformanceGoing on an HTTP Diet: Front-End Web Performance
Going on an HTTP Diet: Front-End Web Performance
 
My Site is slow - Drupal Camp London 2013
My Site is slow - Drupal Camp London 2013My Site is slow - Drupal Camp London 2013
My Site is slow - Drupal Camp London 2013
 
Building Faster Websites
Building Faster WebsitesBuilding Faster Websites
Building Faster Websites
 
Choosing A Proxy Server - Apachecon 2014
Choosing A Proxy Server - Apachecon 2014Choosing A Proxy Server - Apachecon 2014
Choosing A Proxy Server - Apachecon 2014
 
Http2 in practice
Http2 in practiceHttp2 in practice
Http2 in practice
 
Webinar - DreamObjects/Ceph Case Study
Webinar - DreamObjects/Ceph Case StudyWebinar - DreamObjects/Ceph Case Study
Webinar - DreamObjects/Ceph Case Study
 
Drupal performance
Drupal performanceDrupal performance
Drupal performance
 
Silverlight Wireshark Analysis
Silverlight Wireshark AnalysisSilverlight Wireshark Analysis
Silverlight Wireshark Analysis
 

Dernier

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Dernier (20)

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

Speed Matters

  • 1. Speed Matters Mark Stanton @MarkStanto
  • 2. Does Speed Matter? • 2 sec delay reduces revenue by 4% • 1/2 sec drops traffic by 20% • fastest 10% of users stay 50% longer than the slowest 10% • 10ms = one man-year per day
  • 3. Terminology • Empty cache / Primed cache • Refresh / Revisit • Page ready / Page complete • Throughput / Latency
  • 4. HTTP in 60 seconds • Initial Request GET /assets/logo.png HTTP/1.1 Host: wds-demo.gruden.int User-Agent: Mozilla/5.0... HTTP/1.x 200 OK Server: Apache/2.2.11... Last-Modified: Wed, 09 Sep 2009 17:36:00 GMT Content-Length: 4067 Content-Type: image/png • Subsequent Requests GET /assets/logo.png HTTP/1.1 Host: wds-demo.gruden.int User-Agent: Mozilla/5.0... If-Modified-Since: Wed, 09 Sep 2009 17:36:00 GMT HTTP/1.x 304 Not Modified Server: Apache/1.3.41 ...
  • 6. IE6 21.8s
  • 7. Firefox3 18.6s
  • 8. Image Optimisation 755KB Reduction!
  • 9. Image Optimisation 24 bit PNG 512KB Reduction!
  • 10. Combine JS • Before: • After: 7 Fewer Requests!
  • 11. Combine CSS • Before: • After: 6 Fewer Requests!
  • 12. JS to Bottom Page Ready 1 sec Faster!
  • 13. Cache Control • ETags • Expires
  • 14. Cache Control • Etag: "1c014-287d-f824c1c0" • If-None-Match: "1c014-287d-f824c1c0" • 304 Not Modified
  • 15. Cache Control • Expires: Wed, 08 Oct 2010 02:03:51 GMT • 304 Not Modified
  • 16. Cache Control • Before: <VirtualHost *:80> ServerName wds-demo.gruden.int DocumentRoot ... ErrorLog /private/var/log/apache2/wds-demo-error_log CustomLog /private/var/log/apache2/wds-demo-access_log common </VirtualHost> • After: <VirtualHost *:80> ServerName wds-demo.gruden.int DocumentRoot ... ErrorLog /private/var/log/apache2/wds-demo-error_log CustomLog /private/var/log/apache2/wds-demo-access_log common ExpiresActive on ExpiresDefault "access plus 1 year" FileETag none </VirtualHost> 90% Fewer 304s!
  • 17. Cache Control • Cache-Control: "max-age=0, no-cache, no- store, must-revalidate" • Pragma: "no-cache" • Expires: "Wed, 11 Jan 1984 05:00:00 GMT" Doh!
  • 18. Minify 24KB Reduction!
  • 20. GZip • Before: <VirtualHost *:80> ServerName wds-demo.gruden.int DocumentRoot ... ... ExpiresActive on ExpiresDefault "access plus 1 year" FileETag none </VirtualHost> • After: <VirtualHost *:80> ServerName wds-demo.gruden.int DocumentRoot ... AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript ... ExpiresActive on ExpiresDefault "access plus 1 year" 96KB FileETag none </VirtualHost> Reduction!
  • 21. Split Components Across Domains 2.5 sec Faster in IE6!
  • 22. Sprites 139KB Reduction! 35 Fewer Requests!
  • 24. Restructure Content • Logo into HTML • Lazy load rotators
  • 25. Restructure Content Page Ready 5 sec Faster!
  • 26. CSS Selectors • Before: • After: 100 ms Faster!
  • 28. Summary • Optimised Images • Minify • Combined JS • GZip • Combined CSS • Split Domains • JS to the Bottom • Sprites • Cache Control: Expires • Restructure Content
  • 29. IE6 - Original 21.8s
  • 30. IE6 - Final 6.0s
  • 33. Tools • Firefox Plugins • Firebug • YSlow • Page Speed • Cache Status • LiveHTTPHeaders • Charles Proxy
  • 34. Tools • http://compressorrater.thruhere.net/ • http://developer.yahoo.com/yslow/smushit/ • http://spriteme.org/ • http://spritegen.website-performance.org/
  • 35. Tools • http://spritegen.website-performance.org/ • http://spriteme.org/ • http://developer.yahoo.com/yslow/smushit/ • http://compressorrater.thruhere.net/
  • 36. Hat Tip • http://stevesouders.com/ • http://developer.yahoo.com/performance/
  • 37. Conclusion • Look for low hanging fruit • Make incremental improvements • Incorporate into your process
  • 38. Conclusion • Small upfront investment - continuous benefit • Reduced bandwidth • Reduced load times • Everyone lives happily ever after
  • 39. Thanks • http://delicious.com/markstanton/speed-talk • @MarkStanto