Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
How to improve the performance of your website - FeWeb15
Search
Thijs Feryn
December 08, 2015
Technology
0
250
How to improve the performance of your website - FeWeb15
Web performance talk for FeWeb Congress edition 2015
Thijs Feryn
December 08, 2015
Tweet
Share
More Decks by Thijs Feryn
See All by Thijs Feryn
Caching the uncacheable with Varnish - PHP London 2020
thijsferyn
0
340
Accelerating OTT video platforms with Varnish - London Video Tech meetup 2020
thijsferyn
0
280
't Oncachebare cachen
thijsferyn
0
250
Caching the uncacheable with Varnish - PHP UG FFM 19
thijsferyn
1
480
Developing cacheable PHP applications - PHP Barcelona 2019
thijsferyn
0
520
Caching the uncacheable with Varnish - FullstackEU 2019
thijsferyn
0
390
Varnish beyond basic web acceleration - Symfony Live Berlin 2019
thijsferyn
0
320
Developing cacheable PHP applications
thijsferyn
0
330
Varnish beyond basic web acceleration - DAHO.AM 2019
thijsferyn
0
300
Other Decks in Technology
See All in Technology
NgRx Signal Store
rainerhahnekamp
0
150
Vertex AI を中心に 生成AIのアップデートを共有します
kaz1437
0
290
Delivering Millions of Messages within seconds @ Duolingo
pelelgrino
0
350
4年前、あるじゃん老害エンジニアLT合戦に登壇、米国西海岸コンピュータ歴史博物館体験記の続編
toshi_atsumi
0
220
長期運用プロジェクトでのMySQLからTiDB移行の検証
colopl
2
830
Databricks における 『MLOps』
databricksjapan
2
170
Cloud Native Java with Spring Boot (CNCF Aarhus, April 2024)
thomasvitale
1
160
私が trocco を推す理由
__allllllllez__
1
200
非同期推論システムによるコスト削減と信頼性向上
koki_nishihara
0
170
Google Cloud の AI を支える裏側のインフラを垣間見る!
maroon1st
0
340
Java EE/Jakarta EEの現状と将来―クラウドネイティブ時代にJava EEは対応できるのか?―
takakiyo
1
130
Kernel MemoryでAzure OpenAI Serviceとお手軽データソース連携
mitsuzono
1
210
Featured
See All Featured
How to Ace a Technical Interview
jacobian
272
22k
GraphQLの誤解/rethinking-graphql
sonatard
50
9.2k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
227
16k
Building Applications with DynamoDB
mza
88
5.6k
Bash Introduction
62gerente
604
210k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
25
2.3k
Creatively Recalculating Your Daily Design Routine
revolveconf
210
11k
Building a Modern Day E-commerce SEO Strategy
aleyda
17
6.4k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
116
18k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
19
1.7k
The Mythical Team-Month
searls
216
42k
Transcript
By Thijs Feryn How to improve the performance of your
website
Hi, I’m Thijs
I’m @ThijsFeryn on Twitter
I’m an Evangelist At
I’m a at board member
Web performance is an essential part of the user experience
Infrastructure
Code
Browser rendering
User location
Down Slowdown ~ downtime
Focus on the foundation first
Fast servers
Performance != Scalability
Performance: speed
Scalability: constant speed with increasing load
Add servers to maintain performance
Stability
Code efficiently
Identify slowest part
Optimize database
Optimize runtime
After a while you hit the limits
Don’t recompute if the data hasn’t changed
Cache
Memcached Redis APC
None
Optimize database Optimize runtime A void A void
Don’t recompute if the data hasn’t changed
Varnish
Normally User Server
With Varnish User Varnish Server
Caching in your architecture
Respect HTTP
Cache-control: public, max- age=3600, s-maxage=7200 Cache-control: no-cache, no- store VS
Cookies?
Edge Side Includes
None
Don’t cache header
Cache footer until 31/12/2015 23:59:59
Cache for a day
Cache for an hour
<!DOCTYPE html> <html> <head> <title>The Demo</title> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="stylesheet" href="/css/bootstrap.min.css"> <link rel="stylesheet" href="/css/bootstrap-theme.min.css"> <script src=“/js/jquery-2.1.4.min.js"></script> <script src="/js/bootstrap.min.js"></script> </head> <body> <nav class="navbar navbar-inverse navbar-fixed-top"> <esi:include src=“http://mysite.dev/nav" /> </nav> <div class="jumbotron"> <esi:include src="http://mysite.dev/jumbotron" /> </div> <div class="container"> {% block content %}{% endblock %} <hr> <footer> <esi:include src="http://mysite.dev/footer" /> </footer> </div> </body> </html> ESI tags
Hit rate
Browser rendering
✓Concurrency limitations ✓Slowband, bad mobile connection ✓First byte time ✓Rendering
time ✓Limit resource size ✓Limit resource amount ✓Re-use TCP connections
Compress images, JS & CSS
Combine multiple JS & CSS into one file
Right image size for the right device
Non- blocking Javascript
Google PageSpeed Insights & Web Page Performance Test
User location
Caching in the edge
Content Delivery Network
Faster responses per request
Don’t saturate your own network
None
None
None