SlideShare una empresa de Scribd logo
1 de 24
Creating High Performance Web Sites
Agenda Steve Souders My Experiences Tools The Rules References Questions?
Steve Souders Works at Google Author Creator of YSlow Teacher at Stanford Former Chief Performance Yahoo! Startup Veteran
My Experiences 1.5 Million Unique Users 10 Million Page Views .Net Technology Stack Ektron Cachefly CDN
Tools Firefox + Firebug + YSlow ,[object Object]
JS Beautified
JS Minified
CSS Compressor
Smush ItChrome IE Dev Tools Fiddler Microsoft Network Monitor
The Performance Golden Rule 80-90% of the end user response time is spent on the front end.  Start there. Greater potential for improvement Simpler Proven to work
User Perception User perception is more relevant than actual unload-to-onload response time Varies from one web page to the next
The (First Set of) Rules Make Fewer HTTP Requests  Use a Content Delivery Network  Add an Expires Header  Gzip Components  Put Stylesheets at the Top  Put Scripts at the Bottom  Avoid CSS Expressions  Make JavaScript and CSS External  Reduce DNS Lookups  Minify JavaScript  Avoid Redirects  Remove Duplicates Scripts  Configure ETags Make Ajax Cacheable
Make Fewer HTTP Requests Combined files CSS sprites Image maps Inline images In a stylesheet
Use a Content Delivery Network  Akamai EdgeCast Level3 Static content Offload traffic Locate content geographically closer to users
Add an Expires Header  Static components – use Expires header Something like 10 years from now Dynamic components – use Cache-Control header Max-age in seconds Use this to “prime” the browser cache Need to change filename or use a “cache buster” when contents change yahoo_2.0.6.js yahoo.js?20110310
Gzip Components  Web server compression of files being served Generally reduces size by 70% Supported by about 90% browsers used today
Put Stylesheets at the Top  Makes page appear to render faster Allows page to render progressively
Put Scripts at the Bottom  Scripts block parallel downloads Even across hostnames
Avoid CSS Expressions  Not commonly used Deprecated starting with IE8 background-color: expression( (new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00" );
Make JavaScript and CSS External  Improves cacheability
Reduce DNS Lookups  Typical lookup takes 20-120ms per hostname Cached for performance IE ~30 minutes FF ~60 minutes Reduce the number of unique hostnames Leverage CNAMES media1.spacex.com, media2.spacex.com, etc Rough guideline is 2-4 for static files
Minify JavaScript Remove unnecessary characters to reduce size and improve load time Removes comments and unnecessary whitespace characters Can obfuscate as well myReallyLongVariableName becomes x
Avoid Redirects 301 and 302 status codes Wasteful and slows down response times http://astrology.yahoo.com/astrologyresults in a 301 redirect to http://astrology.yahoo.com/astrology/ Can use CNAMEs here as well
Remove Duplicates Scripts 2 of 10 Top US websites contain at least one duplicate script Doubles execution time and blocking time

Más contenido relacionado

Similar a Creating high-performance-web-sites

Tuning web performance
Tuning web performanceTuning web performance
Tuning web performance
George Ang
 
Tuning Web Performance
Tuning Web PerformanceTuning Web Performance
Tuning Web Performance
Eric ShangKuan
 
High Performance Web Pages - 20 new best practices
High Performance Web Pages - 20 new best practicesHigh Performance Web Pages - 20 new best practices
High Performance Web Pages - 20 new best practices
Stoyan Stefanov
 
Csdn Drdobbs Tenni Theurer Yahoo
Csdn Drdobbs Tenni Theurer YahooCsdn Drdobbs Tenni Theurer Yahoo
Csdn Drdobbs Tenni Theurer Yahoo
guestb1b95b
 
Developing a Struts & Tiles application using WebSphere Studio
Developing a Struts & Tiles application using WebSphere StudioDeveloping a Struts & Tiles application using WebSphere Studio
Developing a Struts & Tiles application using WebSphere Studio
elliando dias
 
Improving web site performance and scalability while saving
Improving web site performance and scalability while savingImproving web site performance and scalability while saving
Improving web site performance and scalability while saving
mdc11
 
Even faster web sites
Even faster web sitesEven faster web sites
Even faster web sites
Felipe Lavín
 

Similar a Creating high-performance-web-sites (20)

Frontend performance
Frontend performanceFrontend performance
Frontend performance
 
Tuning web performance
Tuning web performanceTuning web performance
Tuning web performance
 
Tuning Web Performance
Tuning Web PerformanceTuning Web Performance
Tuning Web Performance
 
Please dont touch-3.6-jsday
Please dont touch-3.6-jsdayPlease dont touch-3.6-jsday
Please dont touch-3.6-jsday
 
Break out of The Box - Part 2
Break out of The Box - Part 2Break out of The Box - Part 2
Break out of The Box - Part 2
 
Oracle UCM: Web Site Performance Tuning
Oracle UCM: Web Site Performance TuningOracle UCM: Web Site Performance Tuning
Oracle UCM: Web Site Performance Tuning
 
Web performance Talk
Web performance TalkWeb performance Talk
Web performance Talk
 
JavaScript front end performance optimizations
JavaScript front end performance optimizationsJavaScript front end performance optimizations
JavaScript front end performance optimizations
 
High Performance Web Pages - 20 new best practices
High Performance Web Pages - 20 new best practicesHigh Performance Web Pages - 20 new best practices
High Performance Web Pages - 20 new best practices
 
Web performance - Analysing Heart.co.uk
Web performance - Analysing Heart.co.ukWeb performance - Analysing Heart.co.uk
Web performance - Analysing Heart.co.uk
 
Practical Performance Tips and Tricks to Make Your HTML/JavaScript Apps Faster
Practical Performance Tips and Tricks to Make Your HTML/JavaScript Apps FasterPractical Performance Tips and Tricks to Make Your HTML/JavaScript Apps Faster
Practical Performance Tips and Tricks to Make Your HTML/JavaScript Apps Faster
 
Csdn Drdobbs Tenni Theurer Yahoo
Csdn Drdobbs Tenni Theurer YahooCsdn Drdobbs Tenni Theurer Yahoo
Csdn Drdobbs Tenni Theurer Yahoo
 
Building Web Sites that Work Everywhere
Building Web Sites that Work EverywhereBuilding Web Sites that Work Everywhere
Building Web Sites that Work Everywhere
 
Developing a Struts & Tiles application using WebSphere Studio
Developing a Struts & Tiles application using WebSphere StudioDeveloping a Struts & Tiles application using WebSphere Studio
Developing a Struts & Tiles application using WebSphere Studio
 
Building high performing web pages
Building high performing web pagesBuilding high performing web pages
Building high performing web pages
 
Improving web site performance and scalability while saving
Improving web site performance and scalability while savingImproving web site performance and scalability while saving
Improving web site performance and scalability while saving
 
Even faster web sites
Even faster web sitesEven faster web sites
Even faster web sites
 
Performace optimization (increase website speed)
Performace optimization (increase website speed)Performace optimization (increase website speed)
Performace optimization (increase website speed)
 
Building high scale, highly available websites in SharePoint 2010
Building high scale, highly available websites in SharePoint 2010Building high scale, highly available websites in SharePoint 2010
Building high scale, highly available websites in SharePoint 2010
 
Client Side Performance @ Xero
Client Side Performance @ XeroClient Side Performance @ Xero
Client Side Performance @ Xero
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Último (20)

FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

Creating high-performance-web-sites

  • 2. Agenda Steve Souders My Experiences Tools The Rules References Questions?
  • 3. Steve Souders Works at Google Author Creator of YSlow Teacher at Stanford Former Chief Performance Yahoo! Startup Veteran
  • 4. My Experiences 1.5 Million Unique Users 10 Million Page Views .Net Technology Stack Ektron Cachefly CDN
  • 5.
  • 9. Smush ItChrome IE Dev Tools Fiddler Microsoft Network Monitor
  • 10. The Performance Golden Rule 80-90% of the end user response time is spent on the front end. Start there. Greater potential for improvement Simpler Proven to work
  • 11. User Perception User perception is more relevant than actual unload-to-onload response time Varies from one web page to the next
  • 12. The (First Set of) Rules Make Fewer HTTP Requests Use a Content Delivery Network Add an Expires Header Gzip Components Put Stylesheets at the Top Put Scripts at the Bottom Avoid CSS Expressions Make JavaScript and CSS External Reduce DNS Lookups Minify JavaScript Avoid Redirects Remove Duplicates Scripts Configure ETags Make Ajax Cacheable
  • 13. Make Fewer HTTP Requests Combined files CSS sprites Image maps Inline images In a stylesheet
  • 14. Use a Content Delivery Network Akamai EdgeCast Level3 Static content Offload traffic Locate content geographically closer to users
  • 15. Add an Expires Header Static components – use Expires header Something like 10 years from now Dynamic components – use Cache-Control header Max-age in seconds Use this to “prime” the browser cache Need to change filename or use a “cache buster” when contents change yahoo_2.0.6.js yahoo.js?20110310
  • 16. Gzip Components Web server compression of files being served Generally reduces size by 70% Supported by about 90% browsers used today
  • 17. Put Stylesheets at the Top Makes page appear to render faster Allows page to render progressively
  • 18. Put Scripts at the Bottom Scripts block parallel downloads Even across hostnames
  • 19. Avoid CSS Expressions Not commonly used Deprecated starting with IE8 background-color: expression( (new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00" );
  • 20. Make JavaScript and CSS External Improves cacheability
  • 21. Reduce DNS Lookups Typical lookup takes 20-120ms per hostname Cached for performance IE ~30 minutes FF ~60 minutes Reduce the number of unique hostnames Leverage CNAMES media1.spacex.com, media2.spacex.com, etc Rough guideline is 2-4 for static files
  • 22. Minify JavaScript Remove unnecessary characters to reduce size and improve load time Removes comments and unnecessary whitespace characters Can obfuscate as well myReallyLongVariableName becomes x
  • 23. Avoid Redirects 301 and 302 status codes Wasteful and slows down response times http://astrology.yahoo.com/astrologyresults in a 301 redirect to http://astrology.yahoo.com/astrology/ Can use CNAMEs here as well
  • 24. Remove Duplicates Scripts 2 of 10 Top US websites contain at least one duplicate script Doubles execution time and blocking time
  • 25. Configure ETags aka Entity Tags Sort of like a checksum for a file Used as a caching mechanism Be careful in web farm scenarios HTTP/1.1 200 OK Last-Modified: Tue, 12 Dec 2006 03:03:59 GMT ETag: "10c24bc-4ab-457e1c1f" Content-Length: 12195 GET /i/yahoo.gif HTTP/1.1 Host: us.yimg.com If-Modified-Since: Tue, 12 Dec 2006 03:03:59 GMT If-None-Match: "10c24bc-4ab-457e1c1f" HTTP/1.1 304 Not Modified
  • 26. Make Ajax Cacheable Apply all the concepts to your ajax responses These could include xml results, web service calls/responses, etc.
  • 27. More Rules Use GET for AJAX requests Post-load components Preload components Reduce the number of DOM elements Split components across domains Minimize the number of iframes No 404s Reduce cookie size Use cookie free domains for components Minimize DOM access Develop smart event handlers Choose <link> over @import Avoid filters Optimize images Optimize CSS sprites Don’t scale images in HTML Make favicon.ico small and cacheable Keep components under 25K Pack components into a multipart document Avoid empty image src
  • 28. References http://getfirebug.com/ http://developer.yahoo.com/yslow/ http://developer.yahoo.com/performance/rules.html http://stevesouders.com/hpws/rules.php