SlideShare a Scribd company logo
Faster Front End 
Performance 
Dan Mouyard 
Matt Farina
Varnish 
Web Heads 
Cluster 
Web Heads 
MySQL Slave 
CDN 
Opcode Cache 
Memcache
Front End Performance?
Dan Mouyard 
(dcmouyard) 
TerpSys 
Accessibility & Performance 
Focused Themer 
3 Years With Drupal 
World Champion 
Old-Time Piano Player
Matt Farina 
(mfer) 
Palantir.net 
Co-Author of Drupal 7 
Module Development 
Core Contributor 
Over 5.5 Years With 
Drupal
Who sees slow sites? 
http://www.flickr.com/photos/valeriebb/3006348550/
Internet Explorer Users
Other Browsers Internet Explorer 
44% 
56% 
http://en.wikipedia.org/wiki/Usage_share_of_web_browsers
http://www.flickr.com/photos/tagzania/3117584313/ 
Mobile Users
Slow Connection Speeds 
http://www.flickr.com/photos/csessums/4460821479/
Why Does It Matter?
http://www.flickr.com/photos/vectorportal/4929890104/ 
Satisfied Users
SEO
Toolbox 
http://www.flickr.com/photos/dipster1/1403240351/
YSlow
Page Speed
Minify Savings (JSMin)
Logged In
Appearance Editor Yikes!
JSMin 
YUI Compressor 
Google Closure Compiler 
UglifyJS
Waterfall Diagrams
6 Connections Per Domain
IE 6/7 Two Per Domain
Slow High Speed Connections? 
48 KiB/s 
384 kbps
Real World Numbers 
49 - 514 KiB/s 
392 - 4112 kbps
TThhrroottttlliinngg PPrrooxxyy
Pulling From Cache
Under Slow 3G Speeds
Images
Quantity
Filesize
Graphics Interchange Format 
GIF
JPEG 
Joint Photographic Experts Group
PNG 
Portable Network Graphics
Graphics
Graphics 
PNG8, GIF
Photographs
Photographs 
JPEG, PNG
PNG Transparency
PNG Transparency 
No AlphaImageLoader for IE6!
Image Compression
Image Styles
CSS Sprites
CSS Sprites
CSS Sprites
269.6 kb 
37 CSS Images
88.7 kb 
4 CSS Images
Cache Theme Images 
.htaccess, web.config
CSS & JS
page.tpl.php 
Placement in Drupal 6 
<html> 
<head> 
$styles 
</head> 
<body> 
$scripts 
$closure 
</body> 
</html>
html.tpl.php 
Placement in Drupal 7 
<html> 
<head> 
$styles 
</head> 
<body> 
$scripts 
$page_bottom 
</body> 
</html>
Selector Performance
Quick! Get that link! 
<div 
id="nav"> 
<ul 
class="nav-­‐list"> 
<li 
class="nav-­‐item"> 
<a 
id="menu-­‐link-­‐42" 
class="nav-­‐link"></a> 
</li> 
</ul> 
</div>
Quick! Get that link! 
<div 
id="nav"> 
<ul 
class="nav-­‐list"> 
<li 
class="nav-­‐item"> 
<a 
id="menu-­‐link-­‐42" 
class="nav-­‐link"></a> 
</li> 
</ul> 
</div> 
div#nav 
ul.nav-­‐list 
li 
a
Quick! Get that link! 
<div 
id="nav"> 
<ul 
class="nav-­‐list"> 
<li 
class="nav-­‐item"> 
<a 
id="menu-­‐link-­‐42" 
class="nav-­‐link"></a> 
</li> 
</ul> 
</div> 
#nav 
.nav-­‐list 
li 
a
Quick! Get that link! 
<div 
id="nav"> 
<ul 
class="nav-­‐list"> 
<li 
class="nav-­‐item"> 
<a 
id="menu-­‐link-­‐42" 
class="nav-­‐link"></a> 
</li> 
</ul> 
</div> 
#nav 
> 
.nav-­‐list 
> 
li 
> 
a
Quick! Get that link! 
<div 
id="nav"> 
<ul 
class="nav-­‐list"> 
<li 
class="nav-­‐item"> 
<a 
id="menu-­‐link-­‐42" 
class="nav-­‐link"></a> 
</li> 
</ul> 
</div> 
#nav 
a
Quick! Get that link! 
<div 
id="nav"> 
<ul 
class="nav-­‐list"> 
<li 
class="nav-­‐item"> 
<a 
id="menu-­‐link-­‐42" 
class="nav-­‐link"></a> 
</li> 
</ul> 
</div> 
#nav 
a 
* Never use the universal selector!
Quick! Get that link! 
<div 
id="nav"> 
<ul 
class="nav-­‐list"> 
<li 
class="nav-­‐item"> 
<a 
id="menu-­‐link-­‐42" 
class="nav-­‐link"></a> 
</li> 
</ul> 
</div> 
#nav 
.nav-­‐link
Quick! Get that link! 
<div 
id="nav"> 
<ul 
class="nav-­‐list"> 
<li 
class="nav-­‐item"> 
<a 
id="menu-­‐link-­‐42" 
class="nav-­‐link"></a> 
</li> 
</ul> 
</div> 
#nav 
#menu-­‐link-­‐42
Quick! Get that link! 
<div 
id="nav"> 
<ul 
class="nav-­‐list"> 
<li 
class="nav-­‐item"> 
<a 
id="menu-­‐link-­‐42" 
class="nav-­‐link"></a> 
</li> 
</ul> 
</div> 
#menu-­‐link-­‐42
Resources 
• Even Faster Websites by Steve Souders 
• Steve Souders blog - http://stevesouders.com/ 
• Web Performance Best Practices - http:// 
People view web pages in browsers 
code.google.html, com/images, speed/css, js 
page-speed/docs/ 
rules_intro.server html 
side performance != seen performance for users 
• YDN Performance - http://developer.yahoo.com/ 
performance/
Q&A
What did you think? 
Locate this session on the DCC website: 
http://chicago2011.drupal.org/sessions 
Click the “Take the Survey” link. 
Thanks!

More Related Content

What's hot

Washington,marcus,mobile presentation,ppt
Washington,marcus,mobile presentation,pptWashington,marcus,mobile presentation,ppt
Washington,marcus,mobile presentation,ppt
beaverdust
 

What's hot (20)

For Widget Presentation at NTC
For Widget Presentation at NTCFor Widget Presentation at NTC
For Widget Presentation at NTC
 
Round Table: Content-Content-Content - DaytonWP February 2013 MeetUp
Round Table: Content-Content-Content - DaytonWP February 2013 MeetUpRound Table: Content-Content-Content - DaytonWP February 2013 MeetUp
Round Table: Content-Content-Content - DaytonWP February 2013 MeetUp
 
WordPress for Girl Geeks 2009-11-24
WordPress for Girl Geeks 2009-11-24WordPress for Girl Geeks 2009-11-24
WordPress for Girl Geeks 2009-11-24
 
WordPress for Libraries PreConference Workshop
WordPress for Libraries PreConference WorkshopWordPress for Libraries PreConference Workshop
WordPress for Libraries PreConference Workshop
 
WordPress in Libraries
WordPress in LibrariesWordPress in Libraries
WordPress in Libraries
 
Wordpress for Dummies
Wordpress for DummiesWordpress for Dummies
Wordpress for Dummies
 
WordPress: Smart Ideas for Startup - SMW torino 2012
WordPress: Smart Ideas for Startup - SMW  torino 2012 WordPress: Smart Ideas for Startup - SMW  torino 2012
WordPress: Smart Ideas for Startup - SMW torino 2012
 
Building a Library Website with WordPress
Building a Library Website with WordPressBuilding a Library Website with WordPress
Building a Library Website with WordPress
 
Wordpress: «l’abc per gli sviluppatori» - PHP.TO.START [2012]
 Wordpress: «l’abc per gli sviluppatori» - PHP.TO.START [2012] Wordpress: «l’abc per gli sviluppatori» - PHP.TO.START [2012]
Wordpress: «l’abc per gli sviluppatori» - PHP.TO.START [2012]
 
World press in libraries
World press in librariesWorld press in libraries
World press in libraries
 
WordPress in School Libraries
WordPress in School LibrariesWordPress in School Libraries
WordPress in School Libraries
 
WordPress for Beginners
WordPress for BeginnersWordPress for Beginners
WordPress for Beginners
 
Poliedric WordPress - Go!WebDesign
Poliedric WordPress - Go!WebDesignPoliedric WordPress - Go!WebDesign
Poliedric WordPress - Go!WebDesign
 
Tips for Creating & Maintaining a Successful Website
Tips for Creating & Maintaining a Successful WebsiteTips for Creating & Maintaining a Successful Website
Tips for Creating & Maintaining a Successful Website
 
Joomla 3 JLayout's - Joomladay Netherlands 2014 #jd14nl
Joomla 3 JLayout's - Joomladay Netherlands 2014 #jd14nlJoomla 3 JLayout's - Joomladay Netherlands 2014 #jd14nl
Joomla 3 JLayout's - Joomladay Netherlands 2014 #jd14nl
 
Washington,marcus,mobile presentation,ppt
Washington,marcus,mobile presentation,pptWashington,marcus,mobile presentation,ppt
Washington,marcus,mobile presentation,ppt
 
Tænk tilgængelighed og brugervenlighed ind i dine sites
Tænk tilgængelighed og brugervenlighed ind i dine sites Tænk tilgængelighed og brugervenlighed ind i dine sites
Tænk tilgængelighed og brugervenlighed ind i dine sites
 
Beginning WordPress Plugin Development
Beginning WordPress Plugin DevelopmentBeginning WordPress Plugin Development
Beginning WordPress Plugin Development
 
Security and Performance - Italian WordPress Conference
Security and Performance - Italian WordPress ConferenceSecurity and Performance - Italian WordPress Conference
Security and Performance - Italian WordPress Conference
 
P.S. I love you
P.S. I love youP.S. I love you
P.S. I love you
 

Similar to Faster front end performance

Twitter bootstrap
Twitter bootstrapTwitter bootstrap
Twitter bootstrap
dennisdc
 
HTML 5 Drupalcamp Ireland Dublin 2010
HTML 5 Drupalcamp Ireland Dublin 2010HTML 5 Drupalcamp Ireland Dublin 2010
HTML 5 Drupalcamp Ireland Dublin 2010
alanburke
 

Similar to Faster front end performance (20)

Twitter bootstrap
Twitter bootstrapTwitter bootstrap
Twitter bootstrap
 
Stop reinventing the wheel: Build Responsive Websites Using Bootstrap
Stop reinventing the wheel: Build Responsive Websites Using BootstrapStop reinventing the wheel: Build Responsive Websites Using Bootstrap
Stop reinventing the wheel: Build Responsive Websites Using Bootstrap
 
Wordpress Basics
Wordpress BasicsWordpress Basics
Wordpress Basics
 
Word press development for non developers
Word press development for non developers Word press development for non developers
Word press development for non developers
 
Intro to Bootstrap
Intro to BootstrapIntro to Bootstrap
Intro to Bootstrap
 
Practical progressive enhancement
Practical progressive enhancementPractical progressive enhancement
Practical progressive enhancement
 
The Responsive Grid & You: Extending Your WordPress Site Across Multiple Dev...
The Responsive Grid & You:  Extending Your WordPress Site Across Multiple Dev...The Responsive Grid & You:  Extending Your WordPress Site Across Multiple Dev...
The Responsive Grid & You: Extending Your WordPress Site Across Multiple Dev...
 
Micro frontend: The microservices puzzle extended to frontend
Micro frontend: The microservices puzzle  extended to frontendMicro frontend: The microservices puzzle  extended to frontend
Micro frontend: The microservices puzzle extended to frontend
 
Twitter bootstrap on rails
Twitter bootstrap on railsTwitter bootstrap on rails
Twitter bootstrap on rails
 
CSUN 2012: ScienceDirect Article Of The Future Collaboration
CSUN 2012: ScienceDirect Article Of The Future CollaborationCSUN 2012: ScienceDirect Article Of The Future Collaboration
CSUN 2012: ScienceDirect Article Of The Future Collaboration
 
iWebkit
iWebkitiWebkit
iWebkit
 
Progressive Enhancement 2.0 (Conference Agnostic)
Progressive Enhancement 2.0 (Conference Agnostic)Progressive Enhancement 2.0 (Conference Agnostic)
Progressive Enhancement 2.0 (Conference Agnostic)
 
HTML 5 Drupalcamp Ireland Dublin 2010
HTML 5 Drupalcamp Ireland Dublin 2010HTML 5 Drupalcamp Ireland Dublin 2010
HTML 5 Drupalcamp Ireland Dublin 2010
 
WordPress Accessibility: WordCamp Chicago
WordPress Accessibility: WordCamp ChicagoWordPress Accessibility: WordCamp Chicago
WordPress Accessibility: WordCamp Chicago
 
Business of Front-end Web Development
Business of Front-end Web DevelopmentBusiness of Front-end Web Development
Business of Front-end Web Development
 
How clean "semantic" markup can power simple Facebook Connect integrations
How clean "semantic" markup can power simple Facebook Connect integrationsHow clean "semantic" markup can power simple Facebook Connect integrations
How clean "semantic" markup can power simple Facebook Connect integrations
 
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
 
Bootstrap - Web Development Framework
Bootstrap - Web Development FrameworkBootstrap - Web Development Framework
Bootstrap - Web Development Framework
 
AtlasCamp 2015: Using add-ons to build add-ons
AtlasCamp 2015: Using add-ons to build add-onsAtlasCamp 2015: Using add-ons to build add-ons
AtlasCamp 2015: Using add-ons to build add-ons
 
Adobe & HTML5
Adobe & HTML5Adobe & HTML5
Adobe & HTML5
 

More from Matthew Farina

Drupal Calendaring, A Technological Solution
Drupal Calendaring, A Technological SolutionDrupal Calendaring, A Technological Solution
Drupal Calendaring, A Technological Solution
Matthew Farina
 

More from Matthew Farina (19)

How Helm, The Package Manager For Kubernetes, Works
How Helm, The Package Manager For Kubernetes, WorksHow Helm, The Package Manager For Kubernetes, Works
How Helm, The Package Manager For Kubernetes, Works
 
Exploring the Future of Helm
Exploring the Future of HelmExploring the Future of Helm
Exploring the Future of Helm
 
Helm 3
Helm 3Helm 3
Helm 3
 
Helm project update at cncf 2019
Helm project update at cncf 2019Helm project update at cncf 2019
Helm project update at cncf 2019
 
Helm @ Orchestructure
Helm @ OrchestructureHelm @ Orchestructure
Helm @ Orchestructure
 
Measuring How Helm Is Used
Measuring How Helm Is UsedMeasuring How Helm Is Used
Measuring How Helm Is Used
 
Testing Lessons Learned From The Community Charts
Testing Lessons Learned From The Community ChartsTesting Lessons Learned From The Community Charts
Testing Lessons Learned From The Community Charts
 
Kubecon SIG Apps December 2017 Update
Kubecon SIG Apps December 2017 UpdateKubecon SIG Apps December 2017 Update
Kubecon SIG Apps December 2017 Update
 
Dipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application DevelopmentDipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application Development
 
A Dive Into Containers and Docker
A Dive Into Containers and DockerA Dive Into Containers and Docker
A Dive Into Containers and Docker
 
HP Helion OpenStack and Professional Services
HP Helion OpenStack and Professional ServicesHP Helion OpenStack and Professional Services
HP Helion OpenStack and Professional Services
 
Why OpenStack matters and how you can get involved
Why OpenStack matters and how you can get involvedWhy OpenStack matters and how you can get involved
Why OpenStack matters and how you can get involved
 
Secure your site
Secure your siteSecure your site
Secure your site
 
Faster mobile sites
Faster mobile sitesFaster mobile sites
Faster mobile sites
 
Front end performance improvements
Front end performance improvementsFront end performance improvements
Front end performance improvements
 
Building Faster Websites
Building Faster WebsitesBuilding Faster Websites
Building Faster Websites
 
Drupal Calendaring, A Technological Solution
Drupal Calendaring, A Technological SolutionDrupal Calendaring, A Technological Solution
Drupal Calendaring, A Technological Solution
 
Make Drupal Better
Make Drupal BetterMake Drupal Better
Make Drupal Better
 
Intro To jQuery In Drupal
Intro To jQuery In DrupalIntro To jQuery In Drupal
Intro To jQuery In Drupal
 

Recently uploaded

Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
mbmh111980
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 

Recently uploaded (20)

Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
 
Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM Integration
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting software
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
iGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockiGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by Skilrock
 

Faster front end performance