Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Optimising Website Performance
Search
Thomas Stapleton
November 07, 2016
Technology
83
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Optimising Website Performance
Optimising Website Performance & Chrome Dev Tools
Thomas Stapleton
November 07, 2016
More Decks by Thomas Stapleton
See All by Thomas Stapleton
Optimising Webpage Performance
tomsta93
1
27
Other Decks in Technology
See All in Technology
Datadog の学び方 - あるいは、オブザーバビリティを学ぶとは何か
mananyuki
1
550
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
880
AIカンパニーへの転換を支えた、エンジニアの仕事の再定義
kworkdev
PRO
1
460
Claude Code本は、どのように執筆チームで書かれたか
oikon48
1
360
LocalStack を使ったサーバーレスアプリケーション開発 / Serverless Development with LocalStack
kakakakakku
1
410
TinyGoでオブザーバビリティ?OpenTelemetryはTinyGoで使えるのか / Is OpenTelemetry available in TinyGo environment?
ymotongpoo
2
140
AI 時代の Azure エンジニアリング ~ 私たちは何を磨き、何を任せるのか ~
chack411
1
590
"優秀な誰か"の下位互換にならないために
yut0naga1_fa
1
1.7k
AIは爆速なのに、私が詰まっていた話 ― 音声入力と鳴くマスコットでボトルネックを削る
yama3133
0
610
AgentCoreで実践するハーネスエンジニアリング
yakumo
1
300
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
390
AI時代のPRレビューにどう向き合うか?
kairim0
1
210
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Documentation Writing (for coders)
carmenintech
77
5.6k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
590
RailsConf 2023
tenderlove
30
1.6k
How to train your dragon (web standard)
notwaldorf
96
6.9k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
The agentic SEO stack - context over prompts
schlessera
0
970
Un-Boring Meetings
codingconduct
0
450
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
43k
Code Review Best Practice
trishagee
74
20k
How to build a perfect <img>
jonoalderson
1
6.1k
Transcript
Optimising Website Performance By Thomas Stapleton @tomsta93
Web Performance • How Fast does your webpage load •
How Fast can a user interact with the page • How Fast does the application respond
Client Side Optimisation “If your application is slow, people won’t
use it.” - Fred Wilson • Versioning (fingerprint) assets • Compress and minify files
Client Side Optimisation • Minify HTML • Only load critical
content server side • Use async templates for non-critical components • Make sure your HTML is valid
Client Side Optimisation • Minify CSS (PostCSS -> cssnano) •
Bundle common SCSS/LESS into one stylesheet • Inline styles used for critical/non-critical components • Make sure your CSS is valid
Client Side Optimisation • Minify JavaScript • Remove blocking JavaScript
• Use a module loader • Make sure your JavaScript is versioned (fingerprinted)
Client Side Optimisation • Only load scripts if they are
required on the page • JavaScript bundles help… but don’t bundle everything • Use DRY, KISS & SOLID principles • Inline JavaScript if necessary
Client Side Optimisation • Upload onto CDN if available •
Version (image-v1.jpg) • Optimise images on upload (CMS) • Lazy Load images below window.innerHeight • Use SVGs where appropriate
Client Side Optimisation • Blocking fonts slow page speed •
Load fonts async • Avoid FOUT, FOIT, FOFT • Use only two fonts and two weights of each
Serving Static Assets • If you’re using HTTPS, enable HTTP2
• Two way proxy • Proxy cache • Correct headers e.g. e-tags, gzip, expiry
Serving Static Assets Headers are important, make sure they’re set.
X-* Headers are custom and like data- for HTML attributes
Serving Static Assets Before After
Proxy Cache 10x Faster! • Time Taken: 1s > 0.1s
• Individual Requests:10ms > 1ms • Transfer Rate: 38.6kb > 393.4kb Respond with 1000 304 requests a second
Navigation Timing API (W3C)
Navigation Timing API (W3C) HTML Parsing Complete 500 milliseconds
Navigation Timing API (W3C) Interaction 700 milliseconds
Navigation Timing API (W3C) Page Load 1 second
Developer Tools Get familiar with all types of developer tools
you may need to use them one day!
Chrome Developer Tools Build with HTML, CSS and JavaScript and
arguable the most used and best developer tools in any browser to date.
Overview • Elements - DOM nodes • Console - Errors
& logging • Sources - Downloaded files, snippets & debugging • Network - Latency & requests • Timeline - Time to first paint & processing • Profiles - Memory & execution time • Application - Cached files & browser data stores • Audits - Recommendations for network & performance improvements
• Elements - DOM nodes • Console - Errors &
logging • Sources - Downloaded files, snippets & debugging Overview • Network - Latency & requests • Timeline - Time to first paint & processing • Profiles - Memory & execution time • Application - Cached files & browser data stores • Audits - Recommendations for network & performance improvements Outline performance issues
Network • See screenshots of progress • Replicate connection speed
• Network queue overview • Protocol Type • Status • DOMContentLoaded • Load time • Breakdown of request processes
Timeline • Paint times • FPS • JS Evaluating &
Execution • Summary • Memory • Event Listeners
Time to First Paint • A white page can be
a valid ‘time to first paint’. • Large amounts of JavaScript execution blocking paint render. • The above is cause by poor code executing on scrolling.
Profiles • Function Execution Times • Memory Allocation • Memory
Usage & Monitoring • Direct JavaScript Function Monitoring
Application • Service Workers • Data/Web Stores • Sessions •
Cache
Service Workers https://www.youtube.com/watch?v=Cjo9iq8k-bc (jakearchibald.com 2016)
Questions Thank you for your time, any questions? WHO’S AWESOME?
You’re Awesome!
Useful Links • https://developers.google.com/web/fundamentals/performance/critical-rendering- path/measure-crp • https://docs.google.com/document/d/ 18GmrZjkpA8fxmCehjgMUg2_ujQs04a7RXlm7m_YcxVM/mobilebasic • https://jakearchibald.com/2016/streams-ftw/#creating-one-stream-from-multiple-
sources-to-supercharge-page-render-times • https://w3c.github.io/ServiceWorker/ • https://developers.google.com/web/fundamentals/performance/ • http://techblog.netflix.com/2015/08/making-netflixcom-faster.html • https://www.webpagetest.org/ • https://tools.pingdom.com/
References • https://www.w3.org/TR/navigation-timing/timing- overview.png • https://jakearchibald.com/2016/streams-ftw/ • https://www.w3.org/TR/service-workers/#cache