SlideShare a Scribd company logo
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
ทำไม App ช้า ๆ แก้หน่อยสิ !!
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 2
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 3
Tuning perfomance
Investigate
Fix
Measure
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 4
Code splitting
Preload strategy
Performance budget
Differential loading
Initial load time
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 5
Building
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 6
Building
Development build
$ng build
Production build
$ng build --prod
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 7
Dev vs. Prod build
Dev Prod
Environment environment.ts environment.prod.ts
Cache-busting Only image ref from css All build files
Source maps Generated Not generated
Extracted CSS Global CSS to .js To .css
Uglification No Yes
Bundling Yes Yes
AOT No Yes
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 8
Prod build :: Smaller & Faster
Dev Prod
Environment environment.ts environment.prod.ts
Cache-busting Only image ref from css All build files
Source maps Generated Not generated
Extracted CSS Global CSS to .js To .css
Uglification No Yes
Bundling Yes Yes
AOT No Yes
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 9
Building
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 10
Building with source maps
$npm install source-map-explorer --save-dev
$ng build --prod --source-map
https://angular.io/guide/deployment
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 11
Analyse sources
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 12
Analyse sources
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 13
Tips source maps
angular.json
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 14
Sentry
https://docs.sentry.io/platforms/javascript/sourcemaps/#uploading-source-maps-to-sentry
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 15
Sentry without source maps
https://docs.sentry.io/platforms/javascript/sourcemaps/#uploading-source-maps-to-sentry
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 16
ขอสวย ๆ กว่านี้หน่อยสิ
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 17
Sentry
https://docs.sentry.io/platforms/javascript/sourcemaps/#uploading-source-maps-to-sentry
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 18
เรื่องฮา ๆ แต่เจ็บ
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 19
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 20
Listing
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 21
Using trackBy in ngFor
Ensure only the list element that has changed
will be rendered (Not all)
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 22
Using trackBy in ngFor
Ensure only the list element that has changed
will be rendered (Not all)
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 23
Listing
Using ngFor directive
https://angular.io/api/common/NgForOf#ngForTrackBy
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 24
Common solution from Doc
Using ngFor + trackBy
https://angular.io/api/common/NgForOf#ngForTrackBy
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 25
ทำไมไม่ช่วยกูวะ !!
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 26
เร็วขึ้นนะ
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 27
แต่ไม่ต้องการให้
template render ใหม่ !!
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 28
ทำไมดีหว่า ?
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 29
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 30
Hard code ไปเลย แจ่ม !!
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 31
ไม่น่าเชื่อเร็วขึ้น 30-50% เป็นสุข
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 32
ได้แรงบัลดาลใจ
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 33
ไปค้นหา google ต่อ
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 34
กลับบ้านไปเขียน code
Meetup
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 35
กลับบ้านไปเขียน code
เขียน test ด้วยนะ

More Related Content

What's hot

Wordpress for Newbie
Wordpress for NewbieWordpress for Newbie
Wordpress for Newbie
Somkiat Puisungnoen
 
Sck Agile in Real World
Sck Agile in Real WorldSck Agile in Real World
Sck Agile in Real World
Somkiat Puisungnoen
 
vTalk#1 Microservices with Spring Boot
vTalk#1 Microservices with Spring BootvTalk#1 Microservices with Spring Boot
vTalk#1 Microservices with Spring Boot
Somkiat Puisungnoen
 
Your Flight is Boarding Now!
Your Flight is Boarding Now!Your Flight is Boarding Now!
Your Flight is Boarding Now!
MeetupDataScienceRoma
 
Microservices and APIs
Microservices and APIsMicroservices and APIs
Microservices and APIs
Puneet Sachdev
 
CWIN17 telford api management, practical implementation experience - david ru...
CWIN17 telford api management, practical implementation experience - david ru...CWIN17 telford api management, practical implementation experience - david ru...
CWIN17 telford api management, practical implementation experience - david ru...
Capgemini
 
Intro to service mesh & Istio
Intro to service mesh & IstioIntro to service mesh & Istio
Intro to service mesh & Istio
Rinor Maloku
 
Cover Your Apps While Still Using npm
Cover Your Apps While Still Using npmCover Your Apps While Still Using npm
Cover Your Apps While Still Using npm
Tierney Cyren
 
Cips Meetup Auckland-Mirko-Kleiner-lean-agile-procurement-201904-1.0
Cips Meetup Auckland-Mirko-Kleiner-lean-agile-procurement-201904-1.0Cips Meetup Auckland-Mirko-Kleiner-lean-agile-procurement-201904-1.0
Cips Meetup Auckland-Mirko-Kleiner-lean-agile-procurement-201904-1.0
Mirko Kleiner
 
Quality Assurance in fast paced DevOps projects using automation - Patrick Ve...
Quality Assurance in fast paced DevOps projects using automation - Patrick Ve...Quality Assurance in fast paced DevOps projects using automation - Patrick Ve...
Quality Assurance in fast paced DevOps projects using automation - Patrick Ve...
Sogeti Nederland B.V.
 
Neste: How to Build Business Case, Ramp-up and Run SAP Test Automation Factory
Neste: How to Build Business Case, Ramp-up and Run SAP Test Automation FactoryNeste: How to Build Business Case, Ramp-up and Run SAP Test Automation Factory
Neste: How to Build Business Case, Ramp-up and Run SAP Test Automation Factory
Sogeti Nederland B.V.
 
AgileSerbia 2019-Closing Keynote by Mirko-Kleiner about Lean-Agile Procurement
AgileSerbia 2019-Closing Keynote by Mirko-Kleiner about Lean-Agile ProcurementAgileSerbia 2019-Closing Keynote by Mirko-Kleiner about Lean-Agile Procurement
AgileSerbia 2019-Closing Keynote by Mirko-Kleiner about Lean-Agile Procurement
Mirko Kleiner
 
Is React The Best Thing Since Sliced Bread?
Is React The Best Thing Since Sliced Bread?Is React The Best Thing Since Sliced Bread?
Is React The Best Thing Since Sliced Bread?
Synerzip
 
Virgin Media's WebEx Social to Jive Content Migration Story
Virgin Media's WebEx Social to Jive Content Migration StoryVirgin Media's WebEx Social to Jive Content Migration Story
Virgin Media's WebEx Social to Jive Content Migration Story
Sei Mani
 
Agile Quality Improvement 7: common challenges and good practices - Wouter Ru...
Agile Quality Improvement 7: common challenges and good practices - Wouter Ru...Agile Quality Improvement 7: common challenges and good practices - Wouter Ru...
Agile Quality Improvement 7: common challenges and good practices - Wouter Ru...
Sogeti Nederland B.V.
 

What's hot (15)

Wordpress for Newbie
Wordpress for NewbieWordpress for Newbie
Wordpress for Newbie
 
Sck Agile in Real World
Sck Agile in Real WorldSck Agile in Real World
Sck Agile in Real World
 
vTalk#1 Microservices with Spring Boot
vTalk#1 Microservices with Spring BootvTalk#1 Microservices with Spring Boot
vTalk#1 Microservices with Spring Boot
 
Your Flight is Boarding Now!
Your Flight is Boarding Now!Your Flight is Boarding Now!
Your Flight is Boarding Now!
 
Microservices and APIs
Microservices and APIsMicroservices and APIs
Microservices and APIs
 
CWIN17 telford api management, practical implementation experience - david ru...
CWIN17 telford api management, practical implementation experience - david ru...CWIN17 telford api management, practical implementation experience - david ru...
CWIN17 telford api management, practical implementation experience - david ru...
 
Intro to service mesh & Istio
Intro to service mesh & IstioIntro to service mesh & Istio
Intro to service mesh & Istio
 
Cover Your Apps While Still Using npm
Cover Your Apps While Still Using npmCover Your Apps While Still Using npm
Cover Your Apps While Still Using npm
 
Cips Meetup Auckland-Mirko-Kleiner-lean-agile-procurement-201904-1.0
Cips Meetup Auckland-Mirko-Kleiner-lean-agile-procurement-201904-1.0Cips Meetup Auckland-Mirko-Kleiner-lean-agile-procurement-201904-1.0
Cips Meetup Auckland-Mirko-Kleiner-lean-agile-procurement-201904-1.0
 
Quality Assurance in fast paced DevOps projects using automation - Patrick Ve...
Quality Assurance in fast paced DevOps projects using automation - Patrick Ve...Quality Assurance in fast paced DevOps projects using automation - Patrick Ve...
Quality Assurance in fast paced DevOps projects using automation - Patrick Ve...
 
Neste: How to Build Business Case, Ramp-up and Run SAP Test Automation Factory
Neste: How to Build Business Case, Ramp-up and Run SAP Test Automation FactoryNeste: How to Build Business Case, Ramp-up and Run SAP Test Automation Factory
Neste: How to Build Business Case, Ramp-up and Run SAP Test Automation Factory
 
AgileSerbia 2019-Closing Keynote by Mirko-Kleiner about Lean-Agile Procurement
AgileSerbia 2019-Closing Keynote by Mirko-Kleiner about Lean-Agile ProcurementAgileSerbia 2019-Closing Keynote by Mirko-Kleiner about Lean-Agile Procurement
AgileSerbia 2019-Closing Keynote by Mirko-Kleiner about Lean-Agile Procurement
 
Is React The Best Thing Since Sliced Bread?
Is React The Best Thing Since Sliced Bread?Is React The Best Thing Since Sliced Bread?
Is React The Best Thing Since Sliced Bread?
 
Virgin Media's WebEx Social to Jive Content Migration Story
Virgin Media's WebEx Social to Jive Content Migration StoryVirgin Media's WebEx Social to Jive Content Migration Story
Virgin Media's WebEx Social to Jive Content Migration Story
 
Agile Quality Improvement 7: common challenges and good practices - Wouter Ru...
Agile Quality Improvement 7: common challenges and good practices - Wouter Ru...Agile Quality Improvement 7: common challenges and good practices - Wouter Ru...
Agile Quality Improvement 7: common challenges and good practices - Wouter Ru...
 

Similar to Angular :: basic tuning performance

SCK Firestore at CNX
SCK Firestore at CNXSCK Firestore at CNX
SCK Firestore at CNX
Somkiat Puisungnoen
 
Clean you code
Clean you codeClean you code
Clean you code
Somkiat Puisungnoen
 
CWIN17 telford application integration and ap is - lisa eckersley
CWIN17 telford   application integration and ap is - lisa eckersleyCWIN17 telford   application integration and ap is - lisa eckersley
CWIN17 telford application integration and ap is - lisa eckersley
Capgemini
 
Javascript for Enterprise Application
Javascript for Enterprise ApplicationJavascript for Enterprise Application
Javascript for Enterprise Application
Soham Dasgupta
 
Automatic for the People
Automatic for the PeopleAutomatic for the People
Automatic for the People
Allon Mureinik
 
Modernizing Service Management Processes with Self-Service Access
Modernizing Service Management Processes with Self-Service AccessModernizing Service Management Processes with Self-Service Access
Modernizing Service Management Processes with Self-Service Access
ITSM Academy, Inc.
 
Sitecore and the Future of Web Development
Sitecore and the Future of Web DevelopmentSitecore and the Future of Web Development
Sitecore and the Future of Web Development
Adrian IORGU
 
【Primer】WebApp release in 3 hours! Programming from scratch Rails course
【Primer】WebApp release in 3 hours! Programming from scratch Rails course【Primer】WebApp release in 3 hours! Programming from scratch Rails course
【Primer】WebApp release in 3 hours! Programming from scratch Rails course
DIVE INTO CODE Corp.
 
Magento Cloud - Introduction
Magento Cloud - IntroductionMagento Cloud - Introduction
Magento Cloud - Introduction
Oleg Posyniak
 
Cloud Foundry Summit 2017
Cloud Foundry Summit 2017Cloud Foundry Summit 2017
Elevate Your Application Security Program with Burp Suite and ThreadFix
Elevate Your Application Security Program with Burp Suite and ThreadFix Elevate Your Application Security Program with Burp Suite and ThreadFix
Elevate Your Application Security Program with Burp Suite and ThreadFix
Denim Group
 
AgileDays 2019 Moscow Procurement on Disruption
AgileDays 2019 Moscow Procurement on DisruptionAgileDays 2019 Moscow Procurement on Disruption
AgileDays 2019 Moscow Procurement on Disruption
Mirko Kleiner
 
Getting Started with AWS for Develoeprs
Getting Started with AWS for DeveloeprsGetting Started with AWS for Develoeprs
Getting Started with AWS for Develoeprs
Amazon Web Services
 
Digital Transformation. Examples from Automotive Industry
Digital Transformation. Examples from Automotive IndustryDigital Transformation. Examples from Automotive Industry
Digital Transformation. Examples from Automotive Industry
Boost40
 
ROMA NOVIKOV, BAQ, "Prometheus + grafana based monitoring"
ROMA NOVIKOV, BAQ, "Prometheus + grafana based monitoring"ROMA NOVIKOV, BAQ, "Prometheus + grafana based monitoring"
ROMA NOVIKOV, BAQ, "Prometheus + grafana based monitoring"
Dakiry
 
Testing Microsoft Dynamics NAV with Rapise
Testing Microsoft Dynamics NAV with RapiseTesting Microsoft Dynamics NAV with Rapise
Testing Microsoft Dynamics NAV with Rapise
Adam Sandman
 
Kendo UI workshop introduction - PUG Baltic Annual Conference 2017
Kendo UI workshop introduction - PUG Baltic Annual Conference 2017Kendo UI workshop introduction - PUG Baltic Annual Conference 2017
Kendo UI workshop introduction - PUG Baltic Annual Conference 2017
Alen Leit
 
IMMERSE'16 Intro to Adobe Experience Manager & Adobe Marketing Cloud
IMMERSE'16 Intro to Adobe Experience Manager & Adobe Marketing CloudIMMERSE'16 Intro to Adobe Experience Manager & Adobe Marketing Cloud
IMMERSE'16 Intro to Adobe Experience Manager & Adobe Marketing Cloud
AdobeMarketingCloud
 
Getting Started with AWS Developers: AWS Developer Workshop - Web Summit 2018
Getting Started with AWS Developers: AWS Developer Workshop - Web Summit 2018Getting Started with AWS Developers: AWS Developer Workshop - Web Summit 2018
Getting Started with AWS Developers: AWS Developer Workshop - Web Summit 2018
Amazon Web Services
 
DevOps in a Nutshell
DevOps in a NutshellDevOps in a Nutshell
DevOps in a Nutshell
Arne Roßmann
 

Similar to Angular :: basic tuning performance (20)

SCK Firestore at CNX
SCK Firestore at CNXSCK Firestore at CNX
SCK Firestore at CNX
 
Clean you code
Clean you codeClean you code
Clean you code
 
CWIN17 telford application integration and ap is - lisa eckersley
CWIN17 telford   application integration and ap is - lisa eckersleyCWIN17 telford   application integration and ap is - lisa eckersley
CWIN17 telford application integration and ap is - lisa eckersley
 
Javascript for Enterprise Application
Javascript for Enterprise ApplicationJavascript for Enterprise Application
Javascript for Enterprise Application
 
Automatic for the People
Automatic for the PeopleAutomatic for the People
Automatic for the People
 
Modernizing Service Management Processes with Self-Service Access
Modernizing Service Management Processes with Self-Service AccessModernizing Service Management Processes with Self-Service Access
Modernizing Service Management Processes with Self-Service Access
 
Sitecore and the Future of Web Development
Sitecore and the Future of Web DevelopmentSitecore and the Future of Web Development
Sitecore and the Future of Web Development
 
【Primer】WebApp release in 3 hours! Programming from scratch Rails course
【Primer】WebApp release in 3 hours! Programming from scratch Rails course【Primer】WebApp release in 3 hours! Programming from scratch Rails course
【Primer】WebApp release in 3 hours! Programming from scratch Rails course
 
Magento Cloud - Introduction
Magento Cloud - IntroductionMagento Cloud - Introduction
Magento Cloud - Introduction
 
Cloud Foundry Summit 2017
Cloud Foundry Summit 2017Cloud Foundry Summit 2017
Cloud Foundry Summit 2017
 
Elevate Your Application Security Program with Burp Suite and ThreadFix
Elevate Your Application Security Program with Burp Suite and ThreadFix Elevate Your Application Security Program with Burp Suite and ThreadFix
Elevate Your Application Security Program with Burp Suite and ThreadFix
 
AgileDays 2019 Moscow Procurement on Disruption
AgileDays 2019 Moscow Procurement on DisruptionAgileDays 2019 Moscow Procurement on Disruption
AgileDays 2019 Moscow Procurement on Disruption
 
Getting Started with AWS for Develoeprs
Getting Started with AWS for DeveloeprsGetting Started with AWS for Develoeprs
Getting Started with AWS for Develoeprs
 
Digital Transformation. Examples from Automotive Industry
Digital Transformation. Examples from Automotive IndustryDigital Transformation. Examples from Automotive Industry
Digital Transformation. Examples from Automotive Industry
 
ROMA NOVIKOV, BAQ, "Prometheus + grafana based monitoring"
ROMA NOVIKOV, BAQ, "Prometheus + grafana based monitoring"ROMA NOVIKOV, BAQ, "Prometheus + grafana based monitoring"
ROMA NOVIKOV, BAQ, "Prometheus + grafana based monitoring"
 
Testing Microsoft Dynamics NAV with Rapise
Testing Microsoft Dynamics NAV with RapiseTesting Microsoft Dynamics NAV with Rapise
Testing Microsoft Dynamics NAV with Rapise
 
Kendo UI workshop introduction - PUG Baltic Annual Conference 2017
Kendo UI workshop introduction - PUG Baltic Annual Conference 2017Kendo UI workshop introduction - PUG Baltic Annual Conference 2017
Kendo UI workshop introduction - PUG Baltic Annual Conference 2017
 
IMMERSE'16 Intro to Adobe Experience Manager & Adobe Marketing Cloud
IMMERSE'16 Intro to Adobe Experience Manager & Adobe Marketing CloudIMMERSE'16 Intro to Adobe Experience Manager & Adobe Marketing Cloud
IMMERSE'16 Intro to Adobe Experience Manager & Adobe Marketing Cloud
 
Getting Started with AWS Developers: AWS Developer Workshop - Web Summit 2018
Getting Started with AWS Developers: AWS Developer Workshop - Web Summit 2018Getting Started with AWS Developers: AWS Developer Workshop - Web Summit 2018
Getting Started with AWS Developers: AWS Developer Workshop - Web Summit 2018
 
DevOps in a Nutshell
DevOps in a NutshellDevOps in a Nutshell
DevOps in a Nutshell
 

More from Somkiat Puisungnoen

Manage data of service
Manage data of serviceManage data of service
Manage data of service
Somkiat Puisungnoen
 
Cloud Native App
Cloud Native AppCloud Native App
Cloud Native App
Somkiat Puisungnoen
 
Unhappiness Developer
Unhappiness DeveloperUnhappiness Developer
Unhappiness Developer
Somkiat Puisungnoen
 
The Beauty of BAD code
The Beauty of  BAD codeThe Beauty of  BAD code
The Beauty of BAD code
Somkiat Puisungnoen
 
React in the right way
React in the right wayReact in the right way
React in the right way
Somkiat Puisungnoen
 
Rise of Container (RoC)
Rise of Container (RoC)Rise of Container (RoC)
Rise of Container (RoC)
Somkiat Puisungnoen
 
SCK :: Scrum is NOT Enough
SCK :: Scrum is NOT EnoughSCK :: Scrum is NOT Enough
SCK :: Scrum is NOT Enough
Somkiat Puisungnoen
 
Software Development Trends 2017 at IMC
Software Development Trends 2017 at IMCSoftware Development Trends 2017 at IMC
Software Development Trends 2017 at IMC
Somkiat Puisungnoen
 
Design pattern with Java 8
Design pattern with Java 8Design pattern with Java 8
Design pattern with Java 8
Somkiat Puisungnoen
 
Meetup :: Update Elastic Stack 5.0
Meetup :: Update Elastic Stack 5.0Meetup :: Update Elastic Stack 5.0
Meetup :: Update Elastic Stack 5.0
Somkiat Puisungnoen
 
Git as NoSQL
Git as NoSQLGit as NoSQL
Git as NoSQL
Somkiat Puisungnoen
 
DevOps 101
DevOps 101DevOps 101
Sck Mobile Application Security
Sck Mobile Application SecuritySck Mobile Application Security
Sck Mobile Application Security
Somkiat Puisungnoen
 
Automation test for Android
Automation test for AndroidAutomation test for Android
Automation test for Android
Somkiat Puisungnoen
 
Secure Test-Driven Development
Secure Test-Driven DevelopmentSecure Test-Driven Development
Secure Test-Driven Development
Somkiat Puisungnoen
 
Working with branch
Working with branchWorking with branch
Working with branch
Somkiat Puisungnoen
 

More from Somkiat Puisungnoen (17)

devops
devops devops
devops
 
Manage data of service
Manage data of serviceManage data of service
Manage data of service
 
Cloud Native App
Cloud Native AppCloud Native App
Cloud Native App
 
Unhappiness Developer
Unhappiness DeveloperUnhappiness Developer
Unhappiness Developer
 
The Beauty of BAD code
The Beauty of  BAD codeThe Beauty of  BAD code
The Beauty of BAD code
 
React in the right way
React in the right wayReact in the right way
React in the right way
 
Rise of Container (RoC)
Rise of Container (RoC)Rise of Container (RoC)
Rise of Container (RoC)
 
SCK :: Scrum is NOT Enough
SCK :: Scrum is NOT EnoughSCK :: Scrum is NOT Enough
SCK :: Scrum is NOT Enough
 
Software Development Trends 2017 at IMC
Software Development Trends 2017 at IMCSoftware Development Trends 2017 at IMC
Software Development Trends 2017 at IMC
 
Design pattern with Java 8
Design pattern with Java 8Design pattern with Java 8
Design pattern with Java 8
 
Meetup :: Update Elastic Stack 5.0
Meetup :: Update Elastic Stack 5.0Meetup :: Update Elastic Stack 5.0
Meetup :: Update Elastic Stack 5.0
 
Git as NoSQL
Git as NoSQLGit as NoSQL
Git as NoSQL
 
DevOps 101
DevOps 101DevOps 101
DevOps 101
 
Sck Mobile Application Security
Sck Mobile Application SecuritySck Mobile Application Security
Sck Mobile Application Security
 
Automation test for Android
Automation test for AndroidAutomation test for Android
Automation test for Android
 
Secure Test-Driven Development
Secure Test-Driven DevelopmentSecure Test-Driven Development
Secure Test-Driven Development
 
Working with branch
Working with branchWorking with branch
Working with branch
 

Recently uploaded

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
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
Globus
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
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
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
Jen Stirrup
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 

Recently uploaded (20)

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
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
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
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 

Angular :: basic tuning performance

  • 1. © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. ทำไม App ช้า ๆ แก้หน่อยสิ !!
  • 2. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 2
  • 3. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 3 Tuning perfomance Investigate Fix Measure
  • 4. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 4 Code splitting Preload strategy Performance budget Differential loading Initial load time
  • 5. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 5 Building
  • 6. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 6 Building Development build $ng build Production build $ng build --prod
  • 7. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 7 Dev vs. Prod build Dev Prod Environment environment.ts environment.prod.ts Cache-busting Only image ref from css All build files Source maps Generated Not generated Extracted CSS Global CSS to .js To .css Uglification No Yes Bundling Yes Yes AOT No Yes
  • 8. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 8 Prod build :: Smaller & Faster Dev Prod Environment environment.ts environment.prod.ts Cache-busting Only image ref from css All build files Source maps Generated Not generated Extracted CSS Global CSS to .js To .css Uglification No Yes Bundling Yes Yes AOT No Yes
  • 9. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 9 Building
  • 10. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 10 Building with source maps $npm install source-map-explorer --save-dev $ng build --prod --source-map https://angular.io/guide/deployment
  • 11. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 11 Analyse sources
  • 12. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 12 Analyse sources
  • 13. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 13 Tips source maps angular.json
  • 14. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 14 Sentry https://docs.sentry.io/platforms/javascript/sourcemaps/#uploading-source-maps-to-sentry
  • 15. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 15 Sentry without source maps https://docs.sentry.io/platforms/javascript/sourcemaps/#uploading-source-maps-to-sentry
  • 16. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 16 ขอสวย ๆ กว่านี้หน่อยสิ
  • 17. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 17 Sentry https://docs.sentry.io/platforms/javascript/sourcemaps/#uploading-source-maps-to-sentry
  • 18. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 18 เรื่องฮา ๆ แต่เจ็บ
  • 19. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 19
  • 20. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 20 Listing
  • 21. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 21 Using trackBy in ngFor Ensure only the list element that has changed will be rendered (Not all)
  • 22. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 22 Using trackBy in ngFor Ensure only the list element that has changed will be rendered (Not all)
  • 23. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 23 Listing Using ngFor directive https://angular.io/api/common/NgForOf#ngForTrackBy
  • 24. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 24 Common solution from Doc Using ngFor + trackBy https://angular.io/api/common/NgForOf#ngForTrackBy
  • 25. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 25 ทำไมไม่ช่วยกูวะ !!
  • 26. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 26 เร็วขึ้นนะ
  • 27. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 27 แต่ไม่ต้องการให้ template render ใหม่ !!
  • 28. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 28 ทำไมดีหว่า ?
  • 29. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 29
  • 30. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 30 Hard code ไปเลย แจ่ม !!
  • 31. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 31 ไม่น่าเชื่อเร็วขึ้น 30-50% เป็นสุข
  • 32. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 32 ได้แรงบัลดาลใจ
  • 33. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 33 ไปค้นหา google ต่อ
  • 34. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 34 กลับบ้านไปเขียน code
  • 35. Meetup © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 35 กลับบ้านไปเขียน code เขียน test ด้วยนะ