SlideShare a Scribd company logo
Frontend Caching


                               Helgi Þormar Þorbjörnsson
                           PhpDay, Italy, Verona, 14th May 2011

Saturday, 14 May 2011
Who am I?




Saturday, 14 May 2011
Who am I?

                        VP of Engineering at Orchestra.io




Saturday, 14 May 2011
Who am I?

                        VP of Engineering at Orchestra.io
                        Developer at PEAR




Saturday, 14 May 2011
Who am I?

                        VP of Engineering at Orchestra.io
                        Developer at PEAR
                        From Iceland




Saturday, 14 May 2011
Who am I?

                        VP of Engineering at Orchestra.io
                        Developer at PEAR
                        From Iceland
                        @h on Twitter



Saturday, 14 May 2011
Pareto Principle


                            20%   80%




Saturday, 14 May 2011
80 / 20 Rule


                  20%         80%
  20% of the population receives 80% of the income




Saturday, 14 May 2011
80 / 20 Rule


                            20%       80%
                20% of causes produce 80% of the effects




Saturday, 14 May 2011
80% of response time is
                        spent downloading resources




Saturday, 14 May 2011
4 Rules of Web
                         Performance


Saturday, 14 May 2011
Weight
                          Time
                        Processing
                        Perception

Saturday, 14 May 2011
Perception



Saturday, 14 May 2011
Make people think your site is fast




Saturday, 14 May 2011
When people can interact with the site




Saturday, 14 May 2011
Saturday, 14 May 2011
“It all depends on how we
                        look at things, and not how
                          they are in themselves.”
                                      - Carl G. Jung




Saturday, 14 May 2011
Perception


                        50% of users arrive
                             on an empty cache




Saturday, 14 May 2011
Perception

                         Empty Cache                    Full Cache
                        28.0K    1 HTML Document

                         1.9K    1 Style Sheet File

                        59.5K    4 Javascript Files   28.0K   1 HTML Document
                        78.7K    24 Images            0.1K    2 Images
                        168.1K   Total Size           28.1K   Total Size
                         30      HTTP Requests         3      HTTP Requests
                         2.4s    Response Time        0.9s    Response Time




Saturday, 14 May 2011
Weight



Saturday, 14 May 2011
HTTP Requests




Saturday, 14 May 2011
HTTP Requests

                         Less is more




Saturday, 14 May 2011
HTTP Requests

                         Less is more
                         Fewer HTTP Requests




Saturday, 14 May 2011
HTTP Requests

                         Less is more
                         Fewer HTTP Requests
                         Easy to improve on




Saturday, 14 May 2011
Cookies




Saturday, 14 May 2011
Cookies

                        Sent with static content




Saturday, 14 May 2011
Cookies

                        Sent with static content
                          Slow upstream speed




Saturday, 14 May 2011
Cookies

                        Sent with static content
                          Slow upstream speed
                                    Big cookies




Saturday, 14 May 2011
Experiment Time!
                                    Cookie Size     Response Time (Delta)
                          0 bytes                 78 ms ( 0 ms)
                          500 bytes               79 ms ( +1 ms)
                          1000 bytes              94 ms (+16 ms)
                          1500 bytes              109 ms (+31 ms)
                          2000 bytes              125 ms (+47 ms)
                          2500 bytes              141 ms (+63 ms)
                          3000 bytes              156 ms (+78 ms)




Saturday, 14 May 2011
Experiment Time!
                                    Cookie Size     Response Time (Delta)
                          0 bytes                 78 ms ( 0 ms)
                          500 bytes               79 ms ( +1 ms)
                          1000 bytes              94 ms (+16 ms)
                          1500 bytes              109 ms (+31 ms)
                          2000 bytes              125 ms (+47 ms)
                          2500 bytes              141 ms (+63 ms)
                          3000 bytes              156 ms (+78 ms)




Saturday, 14 May 2011
Experiment Time!
                                    Cookie Size     Response Time (Delta)
                          0 bytes                 78 ms ( 0 ms)
                          500 bytes               79 ms ( +1 ms)
                          1000 bytes              94 ms (+16 ms)
                          1500 bytes              109 ms (+31 ms)
                          2000 bytes              125 ms (+47 ms)
                          2500 bytes              141 ms (+63 ms)
                          3000 bytes              156 ms (+78 ms)




Saturday, 14 May 2011
Cookies




Saturday, 14 May 2011
Cookies




Saturday, 14 May 2011
Cookies
                        Remove unnecessary cookies




Saturday, 14 May 2011
Cookies
                        Remove unnecessary cookies
                        Appropriate domain level




Saturday, 14 May 2011
Cookies
                        Remove unnecessary cookies
                        Appropriate domain level
                        Keep size low




Saturday, 14 May 2011
Cookies
                        Remove unnecessary cookies
                        Appropriate domain level
                        Keep size low
                        Set Expires




Saturday, 14 May 2011
Parallel Downloads




Saturday, 14 May 2011
Parallel Downloads

                        Be aware of max connection limits




Saturday, 14 May 2011
Parallel Downloads

                          Be aware of max connection limits

                 CNAME to point multiple sub domains to the same IP




Saturday, 14 May 2011
Parallel Downloads

                          Be aware of max connection limits

                 CNAME to point multiple sub domains to the same IP




Saturday, 14 May 2011
Parallel Downloads




                        Borrowed from BrowserScope.org

Saturday, 14 May 2011
Parallel Downloads




                        Borrowed from BrowserScope.org

Saturday, 14 May 2011
Parallel Downloads


                        One domain = 2 Parallel connections




Saturday, 14 May 2011
Parallel Downloads
                        One domain = 2 Parallel connections

                         HTML
                         Image
                         Image
                         Image
                         Image
                         Image
                         Image
                         Image
                         Image

                                 0.4   0.8   1.2   1.6   2   2.4   Secs



Saturday, 14 May 2011
Parallel Downloads
                        Two domains = 4 Parallel connections

                          HTML
                         Image
                         Image
                         Image
                         Image
                         Image
                         Image
                         Image
                         Image

                                 0.4   0.8   1.2   1.6   2   2.4   Secs



Saturday, 14 May 2011
Parallel Downloads

                        Too many hostnames can cause complications




Saturday, 14 May 2011
Parallel Downloads

                        Too many hostnames can cause complications



                          2 – 4 sub domains is a good average




Saturday, 14 May 2011
Combine Files

                  Combining 6 scripts into 1 eliminates 5 requests




Saturday, 14 May 2011
Combine Files

                  Combining 6 scripts into 1 eliminates 5 requests

                        Challenges:
                          develop as separate modules
                          combinations vs. loading more than needed




Saturday, 14 May 2011
Javascript


                         Doesn’t comply with
                        parallel download rules




Saturday, 14 May 2011
Javascript
                               Doesn’t comply with
                              parallel download rules
                        HTML
                         JS
                        Image
                        Image
                        Image
                        Image
                        Image
                        Image
                        Image

                                0.4   0.8   1.2   1.6   2   2.4   Secs


Saturday, 14 May 2011
Javascript
                        script defer attribute is not a solution




Saturday, 14 May 2011
Javascript
                        script defer attribute is not a solution

                        Solution - move them as low in the
                                          page as possible




Saturday, 14 May 2011
Processing



Saturday, 14 May 2011
Processing




Saturday, 14 May 2011
Processing

                        Fake the delivery




Saturday, 14 May 2011
Processing

                        Fake the delivery
                        Lazy Loading




Saturday, 14 May 2011
Processing

                        Fake the delivery
                        Lazy Loading
                        Above the fold Loading




Saturday, 14 May 2011
Processing

                        Fake the delivery
                        Lazy Loading
                        Above the fold Loading
                        Delay Javascript Loading



Saturday, 14 May 2011
Processing




Saturday, 14 May 2011
Processing
                        Bonus - async attribute




Saturday, 14 May 2011
Processing
                        Bonus - async attribute


              http://www.appelsiini.net/projects/lazyload




Saturday, 14 May 2011
JS Minification




Saturday, 14 May 2011
JS Minification

                            Crushes the file
                           Strips out all cruft
                            Voodoo Magic!




Saturday, 14 May 2011
JS Minfication

                         UglifyJS
                         Google Closure
                         YUI Compressor




Saturday, 14 May 2011
JS Minfication

                           UglifyJS
                           Google Closure
                           YUI Compressor



                        http://bit.ly/compression-rates
Saturday, 14 May 2011
CSS Minification

                           YUI Compressor
                           minifycss.com
                           OOCSS




Saturday, 14 May 2011
GZip
                        GZip can be used on




Saturday, 14 May 2011
GZip
                        GZip can be used on
                            JS




Saturday, 14 May 2011
GZip
                        GZip can be used on
                            JS
                            CSS




Saturday, 14 May 2011
GZip
                        GZip can be used on
                            JS
                            CSS
                            XML




Saturday, 14 May 2011
GZip
                        GZip can be used on
                            JS
                            CSS
                            XML
                            JSON




Saturday, 14 May 2011
GZip
                        GZip should not be used on




Saturday, 14 May 2011
GZip
                        GZip should not be used on

                            Images




Saturday, 14 May 2011
GZip
                        GZip should not be used on

                            Images
                            Document formats




Saturday, 14 May 2011
GZip
                        GZip should not be used on

                            Images
                            Document formats
                            Already compressed




Saturday, 14 May 2011
404


                        robots.txt
                         favicon




Saturday, 14 May 2011
Images




Saturday, 14 May 2011
Images

                         favicon




Saturday, 14 May 2011
Images

                         favicon
                        CSS Sprites




Saturday, 14 May 2011
Images

                         favicon
                        CSS Sprites




Saturday, 14 May 2011
Images




Saturday, 14 May 2011
Images

                        Badly optimised




Saturday, 14 May 2011
Images

                        Badly optimised
                        Thumbnails




Saturday, 14 May 2011
Images

                        Badly optimised
                        Thumbnails
                        PNGs compressed up to 50%




Saturday, 14 May 2011
PNG Optimise

                            OptiPNG
                            pngwolf
                            pngcrush
                            jpegtran



Saturday, 14 May 2011
Time



Saturday, 14 May 2011
SSL




Saturday, 14 May 2011
SSL

                        Extra roundtrips




Saturday, 14 May 2011
SSL

                        Extra roundtrips
                        More resources for servers




Saturday, 14 May 2011
SSL

                        Extra roundtrips
                        More resources for servers
                        Worth it, tho!




Saturday, 14 May 2011
Tread the users’ path




Saturday, 14 May 2011
Tread the users’ path


                        Test on slower connections




Saturday, 14 May 2011
Tread the users’ path


                        Test on slower connections
                        Slow proxies




Saturday, 14 May 2011
Tread the users’ path




Saturday, 14 May 2011
Tread the users’ path

                        Tables / Phones




Saturday, 14 May 2011
Tread the users’ path

                        Tables / Phones
                        Airline connections




Saturday, 14 May 2011
Tread the users’ path

                        Tables / Phones
                        Airline connections
                        Public places




Saturday, 14 May 2011
CDN




Saturday, 14 May 2011
CDN

                        Single domain




Saturday, 14 May 2011
CDN

                        Single domain
                        Smart routing




Saturday, 14 May 2011
CDN

                        Single domain
                        Smart routing
                        Data is closer to end user




Saturday, 14 May 2011
CDN




Saturday, 14 May 2011
CDN




Saturday, 14 May 2011
CDN on a Budget




Saturday, 14 May 2011
CDN on a Budget


                             S3

Saturday, 14 May 2011
Query vs. Filename
                      revisions




Saturday, 14 May 2011
Query vs. Filename
                      revisions

                        Cache far in future




Saturday, 14 May 2011
Query vs. Filename
                      revisions

                        Cache far in future
                        Revisioning forces downloads




Saturday, 14 May 2011
Query vs. Filename
                      revisions

                        Cache far in future
                        Revisioning forces downloads




Saturday, 14 May 2011
Query revisions




Saturday, 14 May 2011
Query revisions

                        Easy and convenient




Saturday, 14 May 2011
Query revisions

                        Easy and convenient
                        Usually not recommended




Saturday, 14 May 2011
Query revisions

                        Easy and convenient
                        Usually not recommended
                        Bad proxies are a problem




Saturday, 14 May 2011
Filename revisions




Saturday, 14 May 2011
Filename revisions

                        Requires more work




Saturday, 14 May 2011
Filename revisions

                        Requires more work
                        Recommended




Saturday, 14 May 2011
Filename revisions

                        Requires more work
                        Recommended
                        During build, using md5 hash




Saturday, 14 May 2011
Compromise




Saturday, 14 May 2011
Compromise
                        Create a version function




Saturday, 14 May 2011
Compromise
                        Create a version function
                        Put on all resources




Saturday, 14 May 2011
Compromise
                        Create a version function
                        Put on all resources
                        mod_rewrite magic




Saturday, 14 May 2011
Compromise
                        Create a version function
                        Put on all resources
                        mod_rewrite magic



                        http://bit.ly/query_rev_comp
Saturday, 14 May 2011
Browser Tools




Saturday, 14 May 2011
Browser Tools

                         Firebug




Saturday, 14 May 2011
Browser Tools

                         Firebug
                         YSlow




Saturday, 14 May 2011
Browser Tools

                         Firebug
                         YSlow
                         PageSpeed




Saturday, 14 May 2011
Browser Tools

                         Firebug
                         YSlow
                         PageSpeed
                         Chrome Inspector



Saturday, 14 May 2011
Other Tools




Saturday, 14 May 2011
Other Tools

                        HTTPWatch.com




Saturday, 14 May 2011
Other Tools

                        HTTPWatch.com
                        WebPageTest.org




Saturday, 14 May 2011
Other Tools

                        HTTPWatch.com
                        WebPageTest.org
                        HTTPArchive.org




Saturday, 14 May 2011
Other Tools

                        HTTPWatch.com
                        WebPageTest.org
                        HTTPArchive.org
                        Yottaa.com


Saturday, 14 May 2011
Other Tools




Saturday, 14 May 2011
Other Tools

                        WonderProxy.com




Saturday, 14 May 2011
Other Tools

                        WonderProxy.com
                        pagespeed.googlelabs.com




Saturday, 14 May 2011
Other Tools

                        WonderProxy.com
                        pagespeed.googlelabs.com
                        BrowserScope.com




Saturday, 14 May 2011
Other Tools

                        WonderProxy.com
                        pagespeed.googlelabs.com
                        BrowserScope.com
                        html5boilerplate.com


Saturday, 14 May 2011
“Knowledge rests not upon truth
                          alone, but upon error also”
                                          - Carl G. Jung




Saturday, 14 May 2011
Questions?

                            helgi@orchestra.io
                               Twitter: @h




                        Joind.in: http://joind.in/2987
Saturday, 14 May 2011

More Related Content

What's hot

Envato Dev Ops - Alt.Net Melbourne
Envato Dev Ops - Alt.Net MelbourneEnvato Dev Ops - Alt.Net Melbourne
Envato Dev Ops - Alt.Net Melbourne
John Barton
 
Muscling up your e-reputation
Muscling up your e-reputationMuscling up your e-reputation
Muscling up your e-reputation
Minter Dial
 
The Digital Toolbox - a discussion -Science Online '11
The Digital Toolbox - a discussion -Science Online '11The Digital Toolbox - a discussion -Science Online '11
The Digital Toolbox - a discussion -Science Online '11
Kaitlin Thaney
 
"Data in the Digital Age" - Hadoop Big Data Meetup
"Data in the Digital Age" - Hadoop Big Data Meetup"Data in the Digital Age" - Hadoop Big Data Meetup
"Data in the Digital Age" - Hadoop Big Data Meetup
Kaitlin Thaney
 
CSS
CSSCSS
Brandfuel24 presentatie vincent everts sept2011©
Brandfuel24 presentatie vincent everts sept2011©Brandfuel24 presentatie vincent everts sept2011©
Brandfuel24 presentatie vincent everts sept2011©
Vincent Everts
 
Presentation Orange ftgroup the future of mobile
Presentation Orange ftgroup the future of mobilePresentation Orange ftgroup the future of mobile
Presentation Orange ftgroup the future of mobile
Vincent Everts
 
Deloit the next step in corporate IT
Deloit the next step in corporate ITDeloit the next step in corporate IT
Deloit the next step in corporate IT
Vincent Everts
 
Zanox zxexperday presentation
Zanox zxexperday presentationZanox zxexperday presentation
Zanox zxexperday presentation
Vincent Everts
 
Ole marius smestad - REST & PHP API : how to turn eZ Publish into a multi-cha...
Ole marius smestad - REST & PHP API : how to turn eZ Publish into a multi-cha...Ole marius smestad - REST & PHP API : how to turn eZ Publish into a multi-cha...
Ole marius smestad - REST & PHP API : how to turn eZ Publish into a multi-cha...
eZ Publish Community
 
How to Use Web Analytics to Drive Your Digital Strategy Forward
How to Use Web Analytics to Drive Your Digital Strategy ForwardHow to Use Web Analytics to Drive Your Digital Strategy Forward
How to Use Web Analytics to Drive Your Digital Strategy Forward
asbpe
 
Gunter Pauli
Gunter PauliGunter Pauli
Gunter Pauli
Sym City
 
Developing a Language
Developing a LanguageDeveloping a Language
Developing a Language
evanphx
 
ACTIVE møder VIBE
ACTIVE møder VIBEACTIVE møder VIBE
ACTIVE møder VIBE
ACTIVE institute
 

What's hot (14)

Envato Dev Ops - Alt.Net Melbourne
Envato Dev Ops - Alt.Net MelbourneEnvato Dev Ops - Alt.Net Melbourne
Envato Dev Ops - Alt.Net Melbourne
 
Muscling up your e-reputation
Muscling up your e-reputationMuscling up your e-reputation
Muscling up your e-reputation
 
The Digital Toolbox - a discussion -Science Online '11
The Digital Toolbox - a discussion -Science Online '11The Digital Toolbox - a discussion -Science Online '11
The Digital Toolbox - a discussion -Science Online '11
 
"Data in the Digital Age" - Hadoop Big Data Meetup
"Data in the Digital Age" - Hadoop Big Data Meetup"Data in the Digital Age" - Hadoop Big Data Meetup
"Data in the Digital Age" - Hadoop Big Data Meetup
 
CSS
CSSCSS
CSS
 
Brandfuel24 presentatie vincent everts sept2011©
Brandfuel24 presentatie vincent everts sept2011©Brandfuel24 presentatie vincent everts sept2011©
Brandfuel24 presentatie vincent everts sept2011©
 
Presentation Orange ftgroup the future of mobile
Presentation Orange ftgroup the future of mobilePresentation Orange ftgroup the future of mobile
Presentation Orange ftgroup the future of mobile
 
Deloit the next step in corporate IT
Deloit the next step in corporate ITDeloit the next step in corporate IT
Deloit the next step in corporate IT
 
Zanox zxexperday presentation
Zanox zxexperday presentationZanox zxexperday presentation
Zanox zxexperday presentation
 
Ole marius smestad - REST & PHP API : how to turn eZ Publish into a multi-cha...
Ole marius smestad - REST & PHP API : how to turn eZ Publish into a multi-cha...Ole marius smestad - REST & PHP API : how to turn eZ Publish into a multi-cha...
Ole marius smestad - REST & PHP API : how to turn eZ Publish into a multi-cha...
 
How to Use Web Analytics to Drive Your Digital Strategy Forward
How to Use Web Analytics to Drive Your Digital Strategy ForwardHow to Use Web Analytics to Drive Your Digital Strategy Forward
How to Use Web Analytics to Drive Your Digital Strategy Forward
 
Gunter Pauli
Gunter PauliGunter Pauli
Gunter Pauli
 
Developing a Language
Developing a LanguageDeveloping a Language
Developing a Language
 
ACTIVE møder VIBE
ACTIVE møder VIBEACTIVE møder VIBE
ACTIVE møder VIBE
 

Viewers also liked

symfony & jQuery (phpDay)
symfony & jQuery (phpDay)symfony & jQuery (phpDay)
symfony & jQuery (phpDay)
Massimiliano Arione
 
PHP Day 2011 PHP goes to the cloud
PHP Day 2011 PHP goes to the cloudPHP Day 2011 PHP goes to the cloud
PHP Day 2011 PHP goes to the cloud
pietrobr
 
Integrating Erlang with PHP
Integrating Erlang with PHPIntegrating Erlang with PHP
Integrating Erlang with PHP
Alvaro Videla
 
Priority based K-Erlang Distribution Method in Cloud Computing
Priority based K-Erlang Distribution Method in Cloud ComputingPriority based K-Erlang Distribution Method in Cloud Computing
Priority based K-Erlang Distribution Method in Cloud Computing
idescitation
 
Localisation typo3
Localisation typo3Localisation typo3
Localisation typo3
Daniel
 
An year of Pomodoros
An year of PomodorosAn year of Pomodoros
An year of Pomodoros
Giorgio Sironi
 

Viewers also liked (6)

symfony & jQuery (phpDay)
symfony & jQuery (phpDay)symfony & jQuery (phpDay)
symfony & jQuery (phpDay)
 
PHP Day 2011 PHP goes to the cloud
PHP Day 2011 PHP goes to the cloudPHP Day 2011 PHP goes to the cloud
PHP Day 2011 PHP goes to the cloud
 
Integrating Erlang with PHP
Integrating Erlang with PHPIntegrating Erlang with PHP
Integrating Erlang with PHP
 
Priority based K-Erlang Distribution Method in Cloud Computing
Priority based K-Erlang Distribution Method in Cloud ComputingPriority based K-Erlang Distribution Method in Cloud Computing
Priority based K-Erlang Distribution Method in Cloud Computing
 
Localisation typo3
Localisation typo3Localisation typo3
Localisation typo3
 
An year of Pomodoros
An year of PomodorosAn year of Pomodoros
An year of Pomodoros
 

Similar to Frontend caching - PHP Day, Italy, 2011

Frontend Caching, PHPTek 2011, Chicago
Frontend Caching, PHPTek 2011, ChicagoFrontend Caching, PHPTek 2011, Chicago
Frontend Caching, PHPTek 2011, Chicago
Helgi Þormar Þorbjörnsson
 
MILOFest 2010
MILOFest 2010MILOFest 2010
MILOFest 2010
Larry Staton
 
Introduction to JavaScriptMVC
Introduction to JavaScriptMVCIntroduction to JavaScriptMVC
Introduction to JavaScriptMVC
Pedro Pimentel
 
Desenvolvimento Indolor com JQuery Mobile
Desenvolvimento Indolor com JQuery MobileDesenvolvimento Indolor com JQuery Mobile
Desenvolvimento Indolor com JQuery Mobile
Bruno Oliveira
 
What's Cooking in Xtext 2.0
What's Cooking in Xtext 2.0What's Cooking in Xtext 2.0
What's Cooking in Xtext 2.0
Dr. Jan Köhnlein
 
Digitalwindow keynote london #inspire2011
Digitalwindow keynote london #inspire2011Digitalwindow keynote london #inspire2011
Digitalwindow keynote london #inspire2011
Vincent Everts
 
The Ethics of Abandoning Software
The Ethics of Abandoning SoftwareThe Ethics of Abandoning Software
The Ethics of Abandoning Software
mojodna
 
Software on the High Seas
Software on the High SeasSoftware on the High Seas
Software on the High Seas
Soren Harner
 
Koss, How to make desktop caliber browser apps
Koss, How to make desktop caliber browser appsKoss, How to make desktop caliber browser apps
Koss, How to make desktop caliber browser apps
Evil Martians
 
Inspiratiemiddag_Vincent_Everts_Finalist generatie_einstein_komt_eraan_07042011
Inspiratiemiddag_Vincent_Everts_Finalist generatie_einstein_komt_eraan_07042011Inspiratiemiddag_Vincent_Everts_Finalist generatie_einstein_komt_eraan_07042011
Inspiratiemiddag_Vincent_Everts_Finalist generatie_einstein_komt_eraan_07042011
Finalist - open IT oplossingen
 
Sera que?
Sera que?Sera que?
Sera que?
Ivo Nascimento
 
Frontend caching
Frontend cachingFrontend caching
Milkyway@home rcos presentation_4_8_2011
Milkyway@home rcos presentation_4_8_2011Milkyway@home rcos presentation_4_8_2011
Milkyway@home rcos presentation_4_8_2011
mskmoorthy
 
How to speed-code a success story
How to speed-code a success storyHow to speed-code a success story
How to speed-code a success story
6Wunderkinder
 

Similar to Frontend caching - PHP Day, Italy, 2011 (14)

Frontend Caching, PHPTek 2011, Chicago
Frontend Caching, PHPTek 2011, ChicagoFrontend Caching, PHPTek 2011, Chicago
Frontend Caching, PHPTek 2011, Chicago
 
MILOFest 2010
MILOFest 2010MILOFest 2010
MILOFest 2010
 
Introduction to JavaScriptMVC
Introduction to JavaScriptMVCIntroduction to JavaScriptMVC
Introduction to JavaScriptMVC
 
Desenvolvimento Indolor com JQuery Mobile
Desenvolvimento Indolor com JQuery MobileDesenvolvimento Indolor com JQuery Mobile
Desenvolvimento Indolor com JQuery Mobile
 
What's Cooking in Xtext 2.0
What's Cooking in Xtext 2.0What's Cooking in Xtext 2.0
What's Cooking in Xtext 2.0
 
Digitalwindow keynote london #inspire2011
Digitalwindow keynote london #inspire2011Digitalwindow keynote london #inspire2011
Digitalwindow keynote london #inspire2011
 
The Ethics of Abandoning Software
The Ethics of Abandoning SoftwareThe Ethics of Abandoning Software
The Ethics of Abandoning Software
 
Software on the High Seas
Software on the High SeasSoftware on the High Seas
Software on the High Seas
 
Koss, How to make desktop caliber browser apps
Koss, How to make desktop caliber browser appsKoss, How to make desktop caliber browser apps
Koss, How to make desktop caliber browser apps
 
Inspiratiemiddag_Vincent_Everts_Finalist generatie_einstein_komt_eraan_07042011
Inspiratiemiddag_Vincent_Everts_Finalist generatie_einstein_komt_eraan_07042011Inspiratiemiddag_Vincent_Everts_Finalist generatie_einstein_komt_eraan_07042011
Inspiratiemiddag_Vincent_Everts_Finalist generatie_einstein_komt_eraan_07042011
 
Sera que?
Sera que?Sera que?
Sera que?
 
Frontend caching
Frontend cachingFrontend caching
Frontend caching
 
Milkyway@home rcos presentation_4_8_2011
Milkyway@home rcos presentation_4_8_2011Milkyway@home rcos presentation_4_8_2011
Milkyway@home rcos presentation_4_8_2011
 
How to speed-code a success story
How to speed-code a success storyHow to speed-code a success story
How to speed-code a success story
 

More from Helgi Þormar Þorbjörnsson

Phar, The PHP .exe Format
Phar, The PHP .exe FormatPhar, The PHP .exe Format
Phar, The PHP .exe Format
Helgi Þormar Þorbjörnsson
 
Distribute the workload, PHP Barcelona 2011
Distribute the workload, PHP Barcelona 2011Distribute the workload, PHP Barcelona 2011
Distribute the workload, PHP Barcelona 2011
Helgi Þormar Þorbjörnsson
 
Distribute the workload, PHPTek, Amsterdam, 2011
Distribute the workload, PHPTek, Amsterdam, 2011Distribute the workload, PHPTek, Amsterdam, 2011
Distribute the workload, PHPTek, Amsterdam, 2011
Helgi Þormar Þorbjörnsson
 
Scale like an ant, distribute the workload - DPC, Amsterdam, 2011
Scale like an ant, distribute the workload - DPC, Amsterdam,  2011Scale like an ant, distribute the workload - DPC, Amsterdam,  2011
Scale like an ant, distribute the workload - DPC, Amsterdam, 2011
Helgi Þormar Þorbjörnsson
 
Plant Pyrus in your system - A guide to a plugin system.
Plant Pyrus in your system - A guide to a plugin system.Plant Pyrus in your system - A guide to a plugin system.
Plant Pyrus in your system - A guide to a plugin system.
Helgi Þormar Þorbjörnsson
 
PEAR2 & Pyrus - The look ahead
PEAR2 & Pyrus - The look aheadPEAR2 & Pyrus - The look ahead
PEAR2 & Pyrus - The look ahead
Helgi Þormar Þorbjörnsson
 
Frontend Caching - The "new" frontier
Frontend Caching - The "new" frontierFrontend Caching - The "new" frontier
Frontend Caching - The "new" frontier
Helgi Þormar Þorbjörnsson
 
Caching for Cash, part 4 DPC 2009
Caching for Cash, part 4 DPC 2009Caching for Cash, part 4 DPC 2009
Caching for Cash, part 4 DPC 2009
Helgi Þormar Þorbjörnsson
 
Cashing For Cash, part 1 DPC 2009
Cashing For Cash, part 1 DPC 2009Cashing For Cash, part 1 DPC 2009
Cashing For Cash, part 1 DPC 2009
Helgi Þormar Þorbjörnsson
 
Website releases made easy with the PEAR installer, OSCON 2009
Website releases made easy with the PEAR installer, OSCON 2009Website releases made easy with the PEAR installer, OSCON 2009
Website releases made easy with the PEAR installer, OSCON 2009
Helgi Þormar Þorbjörnsson
 
Caching for Cash - Part 4
Caching for Cash - Part 4Caching for Cash - Part 4
Caching for Cash - Part 4
Helgi Þormar Þorbjörnsson
 
Caching for Cash - Part 1
Caching for Cash - Part 1Caching for Cash - Part 1
Caching for Cash - Part 1
Helgi Þormar Þorbjörnsson
 
Coping with Cyber Monday
Coping with Cyber MondayCoping with Cyber Monday
Coping with Cyber Monday
Helgi Þormar Þorbjörnsson
 
Website releases made easy with the PEAR installer - Barcelona 2008
Website releases made easy with the PEAR installer - Barcelona 2008Website releases made easy with the PEAR installer - Barcelona 2008
Website releases made easy with the PEAR installer - Barcelona 2008
Helgi Þormar Þorbjörnsson
 

More from Helgi Þormar Þorbjörnsson (14)

Phar, The PHP .exe Format
Phar, The PHP .exe FormatPhar, The PHP .exe Format
Phar, The PHP .exe Format
 
Distribute the workload, PHP Barcelona 2011
Distribute the workload, PHP Barcelona 2011Distribute the workload, PHP Barcelona 2011
Distribute the workload, PHP Barcelona 2011
 
Distribute the workload, PHPTek, Amsterdam, 2011
Distribute the workload, PHPTek, Amsterdam, 2011Distribute the workload, PHPTek, Amsterdam, 2011
Distribute the workload, PHPTek, Amsterdam, 2011
 
Scale like an ant, distribute the workload - DPC, Amsterdam, 2011
Scale like an ant, distribute the workload - DPC, Amsterdam,  2011Scale like an ant, distribute the workload - DPC, Amsterdam,  2011
Scale like an ant, distribute the workload - DPC, Amsterdam, 2011
 
Plant Pyrus in your system - A guide to a plugin system.
Plant Pyrus in your system - A guide to a plugin system.Plant Pyrus in your system - A guide to a plugin system.
Plant Pyrus in your system - A guide to a plugin system.
 
PEAR2 & Pyrus - The look ahead
PEAR2 & Pyrus - The look aheadPEAR2 & Pyrus - The look ahead
PEAR2 & Pyrus - The look ahead
 
Frontend Caching - The "new" frontier
Frontend Caching - The "new" frontierFrontend Caching - The "new" frontier
Frontend Caching - The "new" frontier
 
Caching for Cash, part 4 DPC 2009
Caching for Cash, part 4 DPC 2009Caching for Cash, part 4 DPC 2009
Caching for Cash, part 4 DPC 2009
 
Cashing For Cash, part 1 DPC 2009
Cashing For Cash, part 1 DPC 2009Cashing For Cash, part 1 DPC 2009
Cashing For Cash, part 1 DPC 2009
 
Website releases made easy with the PEAR installer, OSCON 2009
Website releases made easy with the PEAR installer, OSCON 2009Website releases made easy with the PEAR installer, OSCON 2009
Website releases made easy with the PEAR installer, OSCON 2009
 
Caching for Cash - Part 4
Caching for Cash - Part 4Caching for Cash - Part 4
Caching for Cash - Part 4
 
Caching for Cash - Part 1
Caching for Cash - Part 1Caching for Cash - Part 1
Caching for Cash - Part 1
 
Coping with Cyber Monday
Coping with Cyber MondayCoping with Cyber Monday
Coping with Cyber Monday
 
Website releases made easy with the PEAR installer - Barcelona 2008
Website releases made easy with the PEAR installer - Barcelona 2008Website releases made easy with the PEAR installer - Barcelona 2008
Website releases made easy with the PEAR installer - Barcelona 2008
 

Recently uploaded

Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 

Recently uploaded (20)

Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 

Frontend caching - PHP Day, Italy, 2011

  • 1. Frontend Caching Helgi Þormar Þorbjörnsson PhpDay, Italy, Verona, 14th May 2011 Saturday, 14 May 2011
  • 2. Who am I? Saturday, 14 May 2011
  • 3. Who am I? VP of Engineering at Orchestra.io Saturday, 14 May 2011
  • 4. Who am I? VP of Engineering at Orchestra.io Developer at PEAR Saturday, 14 May 2011
  • 5. Who am I? VP of Engineering at Orchestra.io Developer at PEAR From Iceland Saturday, 14 May 2011
  • 6. Who am I? VP of Engineering at Orchestra.io Developer at PEAR From Iceland @h on Twitter Saturday, 14 May 2011
  • 7. Pareto Principle 20% 80% Saturday, 14 May 2011
  • 8. 80 / 20 Rule 20% 80% 20% of the population receives 80% of the income Saturday, 14 May 2011
  • 9. 80 / 20 Rule 20% 80% 20% of causes produce 80% of the effects Saturday, 14 May 2011
  • 10. 80% of response time is spent downloading resources Saturday, 14 May 2011
  • 11. 4 Rules of Web Performance Saturday, 14 May 2011
  • 12. Weight Time Processing Perception Saturday, 14 May 2011
  • 14. Make people think your site is fast Saturday, 14 May 2011
  • 15. When people can interact with the site Saturday, 14 May 2011
  • 17. “It all depends on how we look at things, and not how they are in themselves.” - Carl G. Jung Saturday, 14 May 2011
  • 18. Perception 50% of users arrive on an empty cache Saturday, 14 May 2011
  • 19. Perception Empty Cache Full Cache 28.0K 1 HTML Document 1.9K 1 Style Sheet File 59.5K 4 Javascript Files 28.0K 1 HTML Document 78.7K 24 Images 0.1K 2 Images 168.1K Total Size 28.1K Total Size 30 HTTP Requests 3 HTTP Requests 2.4s Response Time 0.9s Response Time Saturday, 14 May 2011
  • 22. HTTP Requests Less is more Saturday, 14 May 2011
  • 23. HTTP Requests Less is more Fewer HTTP Requests Saturday, 14 May 2011
  • 24. HTTP Requests Less is more Fewer HTTP Requests Easy to improve on Saturday, 14 May 2011
  • 26. Cookies Sent with static content Saturday, 14 May 2011
  • 27. Cookies Sent with static content Slow upstream speed Saturday, 14 May 2011
  • 28. Cookies Sent with static content Slow upstream speed Big cookies Saturday, 14 May 2011
  • 29. Experiment Time! Cookie Size Response Time (Delta) 0 bytes 78 ms ( 0 ms) 500 bytes 79 ms ( +1 ms) 1000 bytes 94 ms (+16 ms) 1500 bytes 109 ms (+31 ms) 2000 bytes 125 ms (+47 ms) 2500 bytes 141 ms (+63 ms) 3000 bytes 156 ms (+78 ms) Saturday, 14 May 2011
  • 30. Experiment Time! Cookie Size Response Time (Delta) 0 bytes 78 ms ( 0 ms) 500 bytes 79 ms ( +1 ms) 1000 bytes 94 ms (+16 ms) 1500 bytes 109 ms (+31 ms) 2000 bytes 125 ms (+47 ms) 2500 bytes 141 ms (+63 ms) 3000 bytes 156 ms (+78 ms) Saturday, 14 May 2011
  • 31. Experiment Time! Cookie Size Response Time (Delta) 0 bytes 78 ms ( 0 ms) 500 bytes 79 ms ( +1 ms) 1000 bytes 94 ms (+16 ms) 1500 bytes 109 ms (+31 ms) 2000 bytes 125 ms (+47 ms) 2500 bytes 141 ms (+63 ms) 3000 bytes 156 ms (+78 ms) Saturday, 14 May 2011
  • 34. Cookies Remove unnecessary cookies Saturday, 14 May 2011
  • 35. Cookies Remove unnecessary cookies Appropriate domain level Saturday, 14 May 2011
  • 36. Cookies Remove unnecessary cookies Appropriate domain level Keep size low Saturday, 14 May 2011
  • 37. Cookies Remove unnecessary cookies Appropriate domain level Keep size low Set Expires Saturday, 14 May 2011
  • 39. Parallel Downloads Be aware of max connection limits Saturday, 14 May 2011
  • 40. Parallel Downloads Be aware of max connection limits CNAME to point multiple sub domains to the same IP Saturday, 14 May 2011
  • 41. Parallel Downloads Be aware of max connection limits CNAME to point multiple sub domains to the same IP Saturday, 14 May 2011
  • 42. Parallel Downloads Borrowed from BrowserScope.org Saturday, 14 May 2011
  • 43. Parallel Downloads Borrowed from BrowserScope.org Saturday, 14 May 2011
  • 44. Parallel Downloads One domain = 2 Parallel connections Saturday, 14 May 2011
  • 45. Parallel Downloads One domain = 2 Parallel connections HTML Image Image Image Image Image Image Image Image 0.4 0.8 1.2 1.6 2 2.4 Secs Saturday, 14 May 2011
  • 46. Parallel Downloads Two domains = 4 Parallel connections HTML Image Image Image Image Image Image Image Image 0.4 0.8 1.2 1.6 2 2.4 Secs Saturday, 14 May 2011
  • 47. Parallel Downloads Too many hostnames can cause complications Saturday, 14 May 2011
  • 48. Parallel Downloads Too many hostnames can cause complications 2 – 4 sub domains is a good average Saturday, 14 May 2011
  • 49. Combine Files Combining 6 scripts into 1 eliminates 5 requests Saturday, 14 May 2011
  • 50. Combine Files Combining 6 scripts into 1 eliminates 5 requests Challenges: develop as separate modules combinations vs. loading more than needed Saturday, 14 May 2011
  • 51. Javascript Doesn’t comply with parallel download rules Saturday, 14 May 2011
  • 52. Javascript Doesn’t comply with parallel download rules HTML JS Image Image Image Image Image Image Image 0.4 0.8 1.2 1.6 2 2.4 Secs Saturday, 14 May 2011
  • 53. Javascript script defer attribute is not a solution Saturday, 14 May 2011
  • 54. Javascript script defer attribute is not a solution Solution - move them as low in the page as possible Saturday, 14 May 2011
  • 57. Processing Fake the delivery Saturday, 14 May 2011
  • 58. Processing Fake the delivery Lazy Loading Saturday, 14 May 2011
  • 59. Processing Fake the delivery Lazy Loading Above the fold Loading Saturday, 14 May 2011
  • 60. Processing Fake the delivery Lazy Loading Above the fold Loading Delay Javascript Loading Saturday, 14 May 2011
  • 62. Processing Bonus - async attribute Saturday, 14 May 2011
  • 63. Processing Bonus - async attribute http://www.appelsiini.net/projects/lazyload Saturday, 14 May 2011
  • 65. JS Minification Crushes the file Strips out all cruft Voodoo Magic! Saturday, 14 May 2011
  • 66. JS Minfication UglifyJS Google Closure YUI Compressor Saturday, 14 May 2011
  • 67. JS Minfication UglifyJS Google Closure YUI Compressor http://bit.ly/compression-rates Saturday, 14 May 2011
  • 68. CSS Minification YUI Compressor minifycss.com OOCSS Saturday, 14 May 2011
  • 69. GZip GZip can be used on Saturday, 14 May 2011
  • 70. GZip GZip can be used on JS Saturday, 14 May 2011
  • 71. GZip GZip can be used on JS CSS Saturday, 14 May 2011
  • 72. GZip GZip can be used on JS CSS XML Saturday, 14 May 2011
  • 73. GZip GZip can be used on JS CSS XML JSON Saturday, 14 May 2011
  • 74. GZip GZip should not be used on Saturday, 14 May 2011
  • 75. GZip GZip should not be used on Images Saturday, 14 May 2011
  • 76. GZip GZip should not be used on Images Document formats Saturday, 14 May 2011
  • 77. GZip GZip should not be used on Images Document formats Already compressed Saturday, 14 May 2011
  • 78. 404 robots.txt favicon Saturday, 14 May 2011
  • 80. Images favicon Saturday, 14 May 2011
  • 81. Images favicon CSS Sprites Saturday, 14 May 2011
  • 82. Images favicon CSS Sprites Saturday, 14 May 2011
  • 84. Images Badly optimised Saturday, 14 May 2011
  • 85. Images Badly optimised Thumbnails Saturday, 14 May 2011
  • 86. Images Badly optimised Thumbnails PNGs compressed up to 50% Saturday, 14 May 2011
  • 87. PNG Optimise OptiPNG pngwolf pngcrush jpegtran Saturday, 14 May 2011
  • 90. SSL Extra roundtrips Saturday, 14 May 2011
  • 91. SSL Extra roundtrips More resources for servers Saturday, 14 May 2011
  • 92. SSL Extra roundtrips More resources for servers Worth it, tho! Saturday, 14 May 2011
  • 93. Tread the users’ path Saturday, 14 May 2011
  • 94. Tread the users’ path Test on slower connections Saturday, 14 May 2011
  • 95. Tread the users’ path Test on slower connections Slow proxies Saturday, 14 May 2011
  • 96. Tread the users’ path Saturday, 14 May 2011
  • 97. Tread the users’ path Tables / Phones Saturday, 14 May 2011
  • 98. Tread the users’ path Tables / Phones Airline connections Saturday, 14 May 2011
  • 99. Tread the users’ path Tables / Phones Airline connections Public places Saturday, 14 May 2011
  • 101. CDN Single domain Saturday, 14 May 2011
  • 102. CDN Single domain Smart routing Saturday, 14 May 2011
  • 103. CDN Single domain Smart routing Data is closer to end user Saturday, 14 May 2011
  • 106. CDN on a Budget Saturday, 14 May 2011
  • 107. CDN on a Budget S3 Saturday, 14 May 2011
  • 108. Query vs. Filename revisions Saturday, 14 May 2011
  • 109. Query vs. Filename revisions Cache far in future Saturday, 14 May 2011
  • 110. Query vs. Filename revisions Cache far in future Revisioning forces downloads Saturday, 14 May 2011
  • 111. Query vs. Filename revisions Cache far in future Revisioning forces downloads Saturday, 14 May 2011
  • 113. Query revisions Easy and convenient Saturday, 14 May 2011
  • 114. Query revisions Easy and convenient Usually not recommended Saturday, 14 May 2011
  • 115. Query revisions Easy and convenient Usually not recommended Bad proxies are a problem Saturday, 14 May 2011
  • 117. Filename revisions Requires more work Saturday, 14 May 2011
  • 118. Filename revisions Requires more work Recommended Saturday, 14 May 2011
  • 119. Filename revisions Requires more work Recommended During build, using md5 hash Saturday, 14 May 2011
  • 121. Compromise Create a version function Saturday, 14 May 2011
  • 122. Compromise Create a version function Put on all resources Saturday, 14 May 2011
  • 123. Compromise Create a version function Put on all resources mod_rewrite magic Saturday, 14 May 2011
  • 124. Compromise Create a version function Put on all resources mod_rewrite magic http://bit.ly/query_rev_comp Saturday, 14 May 2011
  • 126. Browser Tools Firebug Saturday, 14 May 2011
  • 127. Browser Tools Firebug YSlow Saturday, 14 May 2011
  • 128. Browser Tools Firebug YSlow PageSpeed Saturday, 14 May 2011
  • 129. Browser Tools Firebug YSlow PageSpeed Chrome Inspector Saturday, 14 May 2011
  • 131. Other Tools HTTPWatch.com Saturday, 14 May 2011
  • 132. Other Tools HTTPWatch.com WebPageTest.org Saturday, 14 May 2011
  • 133. Other Tools HTTPWatch.com WebPageTest.org HTTPArchive.org Saturday, 14 May 2011
  • 134. Other Tools HTTPWatch.com WebPageTest.org HTTPArchive.org Yottaa.com Saturday, 14 May 2011
  • 136. Other Tools WonderProxy.com Saturday, 14 May 2011
  • 137. Other Tools WonderProxy.com pagespeed.googlelabs.com Saturday, 14 May 2011
  • 138. Other Tools WonderProxy.com pagespeed.googlelabs.com BrowserScope.com Saturday, 14 May 2011
  • 139. Other Tools WonderProxy.com pagespeed.googlelabs.com BrowserScope.com html5boilerplate.com Saturday, 14 May 2011
  • 140. “Knowledge rests not upon truth alone, but upon error also” - Carl G. Jung Saturday, 14 May 2011
  • 141. Questions? helgi@orchestra.io Twitter: @h Joind.in: http://joind.in/2987 Saturday, 14 May 2011