wwc london-perf-apps
TRANSCRIPT
![Page 1: Wwc london-perf-apps](https://reader030.vdocument.in/reader030/viewer/2022032619/55c10264bb61eb656d8b4708/html5/thumbnails/1.jpg)
Performance Tips For Apps
![Page 2: Wwc london-perf-apps](https://reader030.vdocument.in/reader030/viewer/2022032619/55c10264bb61eb656d8b4708/html5/thumbnails/2.jpg)
About Me
clairettran
![Page 3: Wwc london-perf-apps](https://reader030.vdocument.in/reader030/viewer/2022032619/55c10264bb61eb656d8b4708/html5/thumbnails/3.jpg)
Performance Is Important
![Page 4: Wwc london-perf-apps](https://reader030.vdocument.in/reader030/viewer/2022032619/55c10264bb61eb656d8b4708/html5/thumbnails/4.jpg)
Some Common Problems
Note: not an exhaustive list
![Page 5: Wwc london-perf-apps](https://reader030.vdocument.in/reader030/viewer/2022032619/55c10264bb61eb656d8b4708/html5/thumbnails/5.jpg)
What I’ll Cover
● Monitoring● Caching● Scaling● Database
+
![Page 6: Wwc london-perf-apps](https://reader030.vdocument.in/reader030/viewer/2022032619/55c10264bb61eb656d8b4708/html5/thumbnails/6.jpg)
MonitoringHow to know there is a performance problem?
![Page 7: Wwc london-perf-apps](https://reader030.vdocument.in/reader030/viewer/2022032619/55c10264bb61eb656d8b4708/html5/thumbnails/7.jpg)
Caching
How?● Cache store ● Fragment caching● SQL caching
![Page 8: Wwc london-perf-apps](https://reader030.vdocument.in/reader030/viewer/2022032619/55c10264bb61eb656d8b4708/html5/thumbnails/8.jpg)
Caching
Before: No Caching
After: With Caching!
Problem: Page making many external requests
![Page 9: Wwc london-perf-apps](https://reader030.vdocument.in/reader030/viewer/2022032619/55c10264bb61eb656d8b4708/html5/thumbnails/9.jpg)
Scaling
Load Balancer
Cache Cluster
Edge Cache / CDN
![Page 10: Wwc london-perf-apps](https://reader030.vdocument.in/reader030/viewer/2022032619/55c10264bb61eb656d8b4708/html5/thumbnails/10.jpg)
Database
● Add an index● Profiling● Batch queries● Eager fetching● Denormalisation● Sharding
![Page 11: Wwc london-perf-apps](https://reader030.vdocument.in/reader030/viewer/2022032619/55c10264bb61eb656d8b4708/html5/thumbnails/11.jpg)
Other Techniques● Queuing/Background Jobs● Caching tech (e.g.
Elasticache)● Dedicated services● Rails engines● C-extensions (gems)● Sprites● Asset pipeline● Cache control headers● Gzip assets*● Less HTTP requests● Dedicated Search Service
● Remove unused assets● Static cluster● AWS Auto-scaling● Edge Caching (Akamai, Cloudfront)● YSlow● Local Storage● Smaller Responses● Async JS● Chrome DevTools● Ruby Flavours e.g. JRuby● Asynchronous tasks
![Page 12: Wwc london-perf-apps](https://reader030.vdocument.in/reader030/viewer/2022032619/55c10264bb61eb656d8b4708/html5/thumbnails/12.jpg)
Further Reading
https://github.com/ianheggie/health_check
http://guides.rubyonrails.org/caching_with_rails.html
http://railscasts.com/episodes/380-memcached-dalli
https://developers.google.com/events/io/sessions/324511365
http://railscasts.com/episodes/366-sidekiq
http://www.slideshare.net/derekmbrown/netflix-strategic-performance-analysis
http://blog.jphpsf.com/2012/04/28/front-end-performance-case-study-github
![Page 13: Wwc london-perf-apps](https://reader030.vdocument.in/reader030/viewer/2022032619/55c10264bb61eb656d8b4708/html5/thumbnails/13.jpg)
![Page 14: Wwc london-perf-apps](https://reader030.vdocument.in/reader030/viewer/2022032619/55c10264bb61eb656d8b4708/html5/thumbnails/14.jpg)
Questions