SlideShare a Scribd company logo
1 of 16
Download to read offline
Optimize PerformanceOptimize Performance
(and not die trying)(and not die trying)
Diego Cardozo
Sr. Web Performance Engineer @ NetSuite
MotivationMotivation
3 pillars in user experience
Design
Usability
Performance
80% - 90% load time comes from the front end
Additionally...
Better user conversion
Affects Google search result rankings
ChallengeChallenge
Initial goal for this talk: teach everything required to
build fast sites
12 hour talk?
Very complex (a.k.a boring)
This group is too diverse for a technical talk
New goal
Drill into the world of web performance
Go over the main optimization techniques
If I was successful...
Continue learning by enrolling in Google's web
performance course (link at the end)
Agenda / FocusAgenda / Focus
1. Measure
Have a clear goal
Measure early
Measure often
2. Optimize
Reduce amount of bytes
Reduce critical resources
Shorten the Critical Rendering Path (CRP)
1. Measure1. Measure
MeasureMeasure
Have a clear goal
Twitter - Time to first tweet
NetSuite - Performance budget
Google - RAIL
100ms 16ms 50ms 1s
MeasureMeasure
Measure early
WebPageTest
Page Speed Insights
sitespeed.io
MeasureMeasure
Measure often
Know how performance evolves
Automation tools
Dynatrace / GTMetrix
More in my talk from Testing Meetup
2. Optimize2. Optimize
OptimizeOptimize
Theory
The CRP is the sequence of steps followed by the
browser in order to render a page
1. Parse the HTML and build the DOM
2. Parse the CSS and build the CSSOM
3. Build the Render Tree
4. Position elements on the screen (Layout)
5. Paint the screen
OptimizeOptimize
Theory
The CRP has 3 main components which can be optimized
1. Total amount of bytes to be downloaded
2. Amount of critical resources (HTML, CSS y blocking JS)
3. Amount of roundtrips needed in order to gather
critical resources
OptimizeOptimize
Example
Total KB: 11
Critical resources: 3
CRP length: 2
OptimizeOptimize
Reduce total amount of bytes
Minify, compress and cache
HTML
CSS
JavaScript
Remove unused styles
Compress images
Example: compressor.io
Compress and unify fonts
unused-css.com
OptimizeOptimize
Reduce amount of critical resources
Concatenate JS and CSS files
Use media queries on <link> tags to unblock
rendering
Write CSS directly on HTML (inline)
Leaving everything inline can be harmful
Write JS directly on HTML (inline)
Still blocks rendering when executed if not marked
as async
OptimizeOptimize
Shorten the Critical Rendering Path (CRP)
Delay JavaScript execution
Add an async attribute to <script> tags so that they
don't block rendering
Code optimizations
LinksLinks
Test performance and not die trying
Google/Udacity course on performance optimization
My blog post which summarizes the above course
Article on removing unused CSS
Questions?Questions?
dcardozo@netsuite.com
slides.com/diegocard/optimize-performance

More Related Content

Viewers also liked

Poster - Sylvia Cheung
Poster - Sylvia CheungPoster - Sylvia Cheung
Poster - Sylvia CheungSylvia Cheung
 
Super Saturday Flyer (1)
Super Saturday Flyer (1)Super Saturday Flyer (1)
Super Saturday Flyer (1)Waverly Masters
 
Find Time For Fitness
Find Time For FitnessFind Time For Fitness
Find Time For Fitnessstreko5733
 
Android Development
Android DevelopmentAndroid Development
Android DevelopmentPluu love
 
Aula a importância da polinização por insetos
Aula a importância da polinização por insetosAula a importância da polinização por insetos
Aula a importância da polinização por insetosEmanuel Fraca
 
Machine Learning and Cognitive Fingerprinting - SparkCognition
Machine Learning and Cognitive Fingerprinting - SparkCognitionMachine Learning and Cognitive Fingerprinting - SparkCognition
Machine Learning and Cognitive Fingerprinting - SparkCognitionSparkCognition
 
IMPACTO Y EVOLUCIÓN DE LA PIRATERÍA INFORMÁTICA EN MÉXICO EN LOS ÚLTIMOS 10 AÑOS
IMPACTO Y EVOLUCIÓN DE LA PIRATERÍA INFORMÁTICA EN MÉXICO EN LOS ÚLTIMOS 10 AÑOSIMPACTO Y EVOLUCIÓN DE LA PIRATERÍA INFORMÁTICA EN MÉXICO EN LOS ÚLTIMOS 10 AÑOS
IMPACTO Y EVOLUCIÓN DE LA PIRATERÍA INFORMÁTICA EN MÉXICO EN LOS ÚLTIMOS 10 AÑOSEliot Guerra
 

Viewers also liked (14)

Poster - Sylvia Cheung
Poster - Sylvia CheungPoster - Sylvia Cheung
Poster - Sylvia Cheung
 
facultad de ciencias de la salud
facultad de ciencias de la salud facultad de ciencias de la salud
facultad de ciencias de la salud
 
Super Saturday Flyer (1)
Super Saturday Flyer (1)Super Saturday Flyer (1)
Super Saturday Flyer (1)
 
Find Time For Fitness
Find Time For FitnessFind Time For Fitness
Find Time For Fitness
 
Maker Party2014
Maker Party2014Maker Party2014
Maker Party2014
 
Android Development
Android DevelopmentAndroid Development
Android Development
 
POA_16_006
POA_16_006POA_16_006
POA_16_006
 
Aula a importância da polinização por insetos
Aula a importância da polinização por insetosAula a importância da polinização por insetos
Aula a importância da polinização por insetos
 
Multisim training in mohali
Multisim training in mohaliMultisim training in mohali
Multisim training in mohali
 
Machine Learning and Cognitive Fingerprinting - SparkCognition
Machine Learning and Cognitive Fingerprinting - SparkCognitionMachine Learning and Cognitive Fingerprinting - SparkCognition
Machine Learning and Cognitive Fingerprinting - SparkCognition
 
IMPACTO Y EVOLUCIÓN DE LA PIRATERÍA INFORMÁTICA EN MÉXICO EN LOS ÚLTIMOS 10 AÑOS
IMPACTO Y EVOLUCIÓN DE LA PIRATERÍA INFORMÁTICA EN MÉXICO EN LOS ÚLTIMOS 10 AÑOSIMPACTO Y EVOLUCIÓN DE LA PIRATERÍA INFORMÁTICA EN MÉXICO EN LOS ÚLTIMOS 10 AÑOS
IMPACTO Y EVOLUCIÓN DE LA PIRATERÍA INFORMÁTICA EN MÉXICO EN LOS ÚLTIMOS 10 AÑOS
 
Client Case Study - Sandwell Council
Client Case Study - Sandwell Council Client Case Study - Sandwell Council
Client Case Study - Sandwell Council
 
OxfordLearn Training guide
OxfordLearn Training guideOxfordLearn Training guide
OxfordLearn Training guide
 
BIM - What the Client wants from Manufacturers #BIM4M2help
BIM - What the Client wants from Manufacturers #BIM4M2helpBIM - What the Client wants from Manufacturers #BIM4M2help
BIM - What the Client wants from Manufacturers #BIM4M2help
 

Similar to Optimize Performance

Performace optimization (increase website speed)
Performace optimization (increase website speed)Performace optimization (increase website speed)
Performace optimization (increase website speed)clickramanm
 
Frontend performance
Frontend performanceFrontend performance
Frontend performancesacred 8
 
Building high performing web pages
Building high performing web pagesBuilding high performing web pages
Building high performing web pagesNilesh Bafna
 
DrupalCampLA 2011 - Drupal frontend-optimizing
DrupalCampLA 2011 - Drupal frontend-optimizingDrupalCampLA 2011 - Drupal frontend-optimizing
DrupalCampLA 2011 - Drupal frontend-optimizingAshok Modi
 
Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...
Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...
Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...John McCaffrey
 
Windy cityrails performance_tuning
Windy cityrails performance_tuningWindy cityrails performance_tuning
Windy cityrails performance_tuningJohn McCaffrey
 
Optimizing Browser Rendering
Optimizing Browser RenderingOptimizing Browser Rendering
Optimizing Browser Renderingmichael.labriola
 
Improving Drupal Performances
Improving Drupal PerformancesImproving Drupal Performances
Improving Drupal PerformancesVladimir Ilic
 
Ajax Performance
Ajax PerformanceAjax Performance
Ajax Performancekaven yan
 
Accelerate SharePoint 2007 and 2010 websites and intranets mike iem - apti...
Accelerate SharePoint 2007 and 2010 websites and intranets    mike iem - apti...Accelerate SharePoint 2007 and 2010 websites and intranets    mike iem - apti...
Accelerate SharePoint 2007 and 2010 websites and intranets mike iem - apti...Aptimize
 
[29-05-2023] All Brands Audit & Solution performances.pptx
[29-05-2023] All Brands Audit & Solution performances.pptx[29-05-2023] All Brands Audit & Solution performances.pptx
[29-05-2023] All Brands Audit & Solution performances.pptxrahmathidayat471220
 
Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-173-252 (4)
Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-173-252 (4)Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-173-252 (4)
Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-173-252 (4)Jordan Zurowski
 
MongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch TutorialMongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch TutorialMongoDB
 
Drupal Camp Victoria
Drupal Camp VictoriaDrupal Camp Victoria
Drupal Camp VictoriaImage X Media
 
Drupal Frontend Performance and Scalability
Drupal Frontend Performance and ScalabilityDrupal Frontend Performance and Scalability
Drupal Frontend Performance and ScalabilityAshok Modi
 
Web Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP MeetupWeb Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP MeetupJonathan Klein
 
Seo for Engineers
Seo for EngineersSeo for Engineers
Seo for EngineersCort Tafoya
 

Similar to Optimize Performance (20)

Performace optimization (increase website speed)
Performace optimization (increase website speed)Performace optimization (increase website speed)
Performace optimization (increase website speed)
 
Frontend performance
Frontend performanceFrontend performance
Frontend performance
 
Building high performing web pages
Building high performing web pagesBuilding high performing web pages
Building high performing web pages
 
DrupalCampLA 2011 - Drupal frontend-optimizing
DrupalCampLA 2011 - Drupal frontend-optimizingDrupalCampLA 2011 - Drupal frontend-optimizing
DrupalCampLA 2011 - Drupal frontend-optimizing
 
Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...
Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...
Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...
 
Windy cityrails performance_tuning
Windy cityrails performance_tuningWindy cityrails performance_tuning
Windy cityrails performance_tuning
 
Optimizing Browser Rendering
Optimizing Browser RenderingOptimizing Browser Rendering
Optimizing Browser Rendering
 
Improving Drupal Performances
Improving Drupal PerformancesImproving Drupal Performances
Improving Drupal Performances
 
Ajax Performance
Ajax PerformanceAjax Performance
Ajax Performance
 
Accelerate SharePoint 2007 and 2010 websites and intranets mike iem - apti...
Accelerate SharePoint 2007 and 2010 websites and intranets    mike iem - apti...Accelerate SharePoint 2007 and 2010 websites and intranets    mike iem - apti...
Accelerate SharePoint 2007 and 2010 websites and intranets mike iem - apti...
 
[29-05-2023] All Brands Audit & Solution performances.pptx
[29-05-2023] All Brands Audit & Solution performances.pptx[29-05-2023] All Brands Audit & Solution performances.pptx
[29-05-2023] All Brands Audit & Solution performances.pptx
 
Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-173-252 (4)
Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-173-252 (4)Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-173-252 (4)
Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-173-252 (4)
 
WordCamp Denmark Keynote
WordCamp Denmark KeynoteWordCamp Denmark Keynote
WordCamp Denmark Keynote
 
MongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch TutorialMongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch Tutorial
 
Drupal Camp Victoria
Drupal Camp VictoriaDrupal Camp Victoria
Drupal Camp Victoria
 
Front-end performances
Front-end performancesFront-end performances
Front-end performances
 
Drupal Frontend Performance and Scalability
Drupal Frontend Performance and ScalabilityDrupal Frontend Performance and Scalability
Drupal Frontend Performance and Scalability
 
Modelling Web Performance Optimization - FFSUx
Modelling  Web Performance Optimization - FFSUxModelling  Web Performance Optimization - FFSUx
Modelling Web Performance Optimization - FFSUx
 
Web Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP MeetupWeb Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP Meetup
 
Seo for Engineers
Seo for EngineersSeo for Engineers
Seo for Engineers
 

More from Diego Cardozo

El proximo billon de usuarios
El proximo billon de usuariosEl proximo billon de usuarios
El proximo billon de usuariosDiego Cardozo
 
The next billion users
The next billion usersThe next billion users
The next billion usersDiego Cardozo
 
Troubleshooting Ecommerce Performance
 Troubleshooting Ecommerce Performance Troubleshooting Ecommerce Performance
Troubleshooting Ecommerce PerformanceDiego Cardozo
 
Cranking It Up - SuiteWorld 2017
Cranking It Up  - SuiteWorld 2017Cranking It Up  - SuiteWorld 2017
Cranking It Up - SuiteWorld 2017Diego Cardozo
 
Speed Thrills - Suiteworld 2016
Speed Thrills - Suiteworld 2016Speed Thrills - Suiteworld 2016
Speed Thrills - Suiteworld 2016Diego Cardozo
 
Performance in the cloud
Performance in the cloudPerformance in the cloud
Performance in the cloudDiego Cardozo
 
Cómo testear performance sin morir en el intento
Cómo testear performance sin morir en el intentoCómo testear performance sin morir en el intento
Cómo testear performance sin morir en el intentoDiego Cardozo
 
Optimizar performance sin morir en el intento
Optimizar performance sin morir en el intentoOptimizar performance sin morir en el intento
Optimizar performance sin morir en el intentoDiego Cardozo
 
Testeando performance sin morir en el intento
Testeando performance sin morir en el intentoTesteando performance sin morir en el intento
Testeando performance sin morir en el intentoDiego Cardozo
 
Organización de aplicaciones web con Backbone.js
Organización de aplicaciones web con Backbone.jsOrganización de aplicaciones web con Backbone.js
Organización de aplicaciones web con Backbone.jsDiego Cardozo
 
Structuring web applications with Backbone.js
Structuring web applications with Backbone.jsStructuring web applications with Backbone.js
Structuring web applications with Backbone.jsDiego Cardozo
 
Component Based Software Development
Component Based Software DevelopmentComponent Based Software Development
Component Based Software DevelopmentDiego Cardozo
 
Desarrollo de Software Basado en Componentes
Desarrollo de Software Basado en ComponentesDesarrollo de Software Basado en Componentes
Desarrollo de Software Basado en ComponentesDiego Cardozo
 
Single page applications
Single page applicationsSingle page applications
Single page applicationsDiego Cardozo
 
Single Page Applications
Single Page ApplicationsSingle Page Applications
Single Page ApplicationsDiego Cardozo
 

More from Diego Cardozo (15)

El proximo billon de usuarios
El proximo billon de usuariosEl proximo billon de usuarios
El proximo billon de usuarios
 
The next billion users
The next billion usersThe next billion users
The next billion users
 
Troubleshooting Ecommerce Performance
 Troubleshooting Ecommerce Performance Troubleshooting Ecommerce Performance
Troubleshooting Ecommerce Performance
 
Cranking It Up - SuiteWorld 2017
Cranking It Up  - SuiteWorld 2017Cranking It Up  - SuiteWorld 2017
Cranking It Up - SuiteWorld 2017
 
Speed Thrills - Suiteworld 2016
Speed Thrills - Suiteworld 2016Speed Thrills - Suiteworld 2016
Speed Thrills - Suiteworld 2016
 
Performance in the cloud
Performance in the cloudPerformance in the cloud
Performance in the cloud
 
Cómo testear performance sin morir en el intento
Cómo testear performance sin morir en el intentoCómo testear performance sin morir en el intento
Cómo testear performance sin morir en el intento
 
Optimizar performance sin morir en el intento
Optimizar performance sin morir en el intentoOptimizar performance sin morir en el intento
Optimizar performance sin morir en el intento
 
Testeando performance sin morir en el intento
Testeando performance sin morir en el intentoTesteando performance sin morir en el intento
Testeando performance sin morir en el intento
 
Organización de aplicaciones web con Backbone.js
Organización de aplicaciones web con Backbone.jsOrganización de aplicaciones web con Backbone.js
Organización de aplicaciones web con Backbone.js
 
Structuring web applications with Backbone.js
Structuring web applications with Backbone.jsStructuring web applications with Backbone.js
Structuring web applications with Backbone.js
 
Component Based Software Development
Component Based Software DevelopmentComponent Based Software Development
Component Based Software Development
 
Desarrollo de Software Basado en Componentes
Desarrollo de Software Basado en ComponentesDesarrollo de Software Basado en Componentes
Desarrollo de Software Basado en Componentes
 
Single page applications
Single page applicationsSingle page applications
Single page applications
 
Single Page Applications
Single Page ApplicationsSingle Page Applications
Single Page Applications
 

Recently uploaded

Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfIdiosysTechnologies1
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 

Recently uploaded (20)

Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdf
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 

Optimize Performance

  • 1. Optimize PerformanceOptimize Performance (and not die trying)(and not die trying) Diego Cardozo Sr. Web Performance Engineer @ NetSuite
  • 2. MotivationMotivation 3 pillars in user experience Design Usability Performance 80% - 90% load time comes from the front end Additionally... Better user conversion Affects Google search result rankings
  • 3. ChallengeChallenge Initial goal for this talk: teach everything required to build fast sites 12 hour talk? Very complex (a.k.a boring) This group is too diverse for a technical talk New goal Drill into the world of web performance Go over the main optimization techniques If I was successful... Continue learning by enrolling in Google's web performance course (link at the end)
  • 4. Agenda / FocusAgenda / Focus 1. Measure Have a clear goal Measure early Measure often 2. Optimize Reduce amount of bytes Reduce critical resources Shorten the Critical Rendering Path (CRP)
  • 6. MeasureMeasure Have a clear goal Twitter - Time to first tweet NetSuite - Performance budget Google - RAIL 100ms 16ms 50ms 1s
  • 8. MeasureMeasure Measure often Know how performance evolves Automation tools Dynatrace / GTMetrix More in my talk from Testing Meetup
  • 10. OptimizeOptimize Theory The CRP is the sequence of steps followed by the browser in order to render a page 1. Parse the HTML and build the DOM 2. Parse the CSS and build the CSSOM 3. Build the Render Tree 4. Position elements on the screen (Layout) 5. Paint the screen
  • 11. OptimizeOptimize Theory The CRP has 3 main components which can be optimized 1. Total amount of bytes to be downloaded 2. Amount of critical resources (HTML, CSS y blocking JS) 3. Amount of roundtrips needed in order to gather critical resources
  • 13. OptimizeOptimize Reduce total amount of bytes Minify, compress and cache HTML CSS JavaScript Remove unused styles Compress images Example: compressor.io Compress and unify fonts unused-css.com
  • 14. OptimizeOptimize Reduce amount of critical resources Concatenate JS and CSS files Use media queries on <link> tags to unblock rendering Write CSS directly on HTML (inline) Leaving everything inline can be harmful Write JS directly on HTML (inline) Still blocks rendering when executed if not marked as async
  • 15. OptimizeOptimize Shorten the Critical Rendering Path (CRP) Delay JavaScript execution Add an async attribute to <script> tags so that they don't block rendering Code optimizations
  • 16. LinksLinks Test performance and not die trying Google/Udacity course on performance optimization My blog post which summarizes the above course Article on removing unused CSS Questions?Questions? dcardozo@netsuite.com slides.com/diegocard/optimize-performance