Digicure seminar i Jylland | Session 2, web performance optimering
1. www.digicure.dk
God performance
er god kundeservice
7. maj 2014
Session 2 – ”Sådan får du et hurtigt website”
Tobias Borg Petersen,
Performancekonsulent fra Digicure A/S
2. Hvem er jeg
Tobias Borg Petersen
2
@_tobibp
tbp@digicure.dk
Webperformance.nu
Performancekonsulent i Digicure
Front End udvikler (.NET)
dk.linkedin.com/in/tobiasbp
3. www.digicure.dk
3
• Stiftet i 2003
• Kontor i Lyngby
• 22 medarbejdere
• Beskæftiger os med analyse og rådgivning
• It-sikkerhed
• Web performance
• It-sikkerhedsuddannelser
• CISSP
• CEH – Ethical hacker
• CVSE – Vmware Hacking / Advanced Security
4. Agenda
Tobias Borg Petersen
4
• Hvilke typer værktøjer har jeg behov for?
• Top 10 tips og tricks til at øge performance niveauet
• Mobil performance optimering – de mobile sites kræver
opmærksomhed
• Når forretningen bliver global, sætter det store krav til performance
• Web performance optimering som en løbende proces
• Hvad byder fremtiden på? Hvilke udfordringer kommer vi til at stå
med?
8. 8
Danske webshops Danske kommuner
Web performance
Hvordan står det til i dag?
Kilde: http://www.digicure.dk/performance.html
9. 9
20 %
.. mindre trafik blot ved at øge svartiden med
500 ms.
Web performance – Hvorfor?
Lavere bruger engagement
Kilde: http://velocityconf.com/velocity2009/public/schedule/detail/8523
10. 10
Kilde: http://blog.kissmetrics.com/loading-time/
• 47 % af de adspurgte
brugere forventer at et
website er vist indenfor 2
sekunder
• 40 % af de adspurgte
brugere vil forlade et
website der er mere end
3 sekunder om at blive vist
Web performance – Hvorfor?
Lavere bruger engagement
11. 11
• Svartider –50-70 %
• Båndbredde forbrug –43 %
• DB CPU –75 %
• Samtidige brugere +300 %
Kilde: http://www.nccgroup.com/media/19242/seatwave_our_optimisation_story.pdf
Web performance – Hvorfor?
Tekniske gevinster
19. 19
Båndbredde og svartider
Båndredde og latency
• Båndbredde indikerer ‘tykkelsen’
• Latency indikerer transporttiden
• Transporttiden fra A til B == Latency
34. 34
• Svartider
• Tilgængelighed
• IKKE kun ping
• Brugernes oplevelse udefra
• 3. part monitorering
Monitorering
Testværktøjer – Web performance
35. 35
Ikke i blinde!
Du kan ikke forbedre
det du ikke måler på!
Testværktøjer – Web performance
36. 36
• Load test
• Hvor meget kan websitet
holde til
• Stress test
• Hvor meget kan websitet
holde til under en stor
belastning
• Endurance test
• Hvordan opfører websitet
sig under en længere
vedvarende belastning
Performancetest
Testværktøjer – Web performance
38. 38
YSlow plugin PageSpeed plugin Webperformance X-ray
Antal performance checks 23 31 400+
Mobil specifikke
performance checks
Nej Nej Ja
Omfang 1 URL 1 URL Hele websitet
Administrationsmodul Nej Nej Ja, op til flere brugere
PDF rapporter Nej Nej Ja, 14 forskellige
Sammenligning af
scanninger
Nej Nej Ja
API Ja Ja Ja
Dansk support Nej Nej Ja
Testværktøjer – Web performance
41. 41
“80-90% of the end-user response time is spent on the frontend.
Start there.” – Steve Sourders, Google
20 % BE = Time To First byte (TTFB)
• Database opslag
• Web service kald
• HTML generering
80% FE = Download af indholdet:
• Billeder
• CSS
• Scripts
• Flash
Kilde: http://www.stevesouders.com/blog/2012/02/10/the-performance-golden-rule/
Hvilke typer af værktøjer
har man behov for?
42. • Reducering af antal HTTP forespørgsler
• Reducering af website indholdet
Hvilke typer af værktøjer
har man behov for?
43. 43
Optimér websitet – Køb ikke mere hardware
500 kb
90 req.
250 kb
45 req.
Hvilke typer af værktøjer
har man behov for?
58. 58
“The fastest HTTP request is the one not made.”
- Steve Souders
Reducér forespørgsler:
Caching (Expire Headers)
Top 10 tips og tricks
59. 59
“The fastest HTTP request is the one not made.”
Reducér forespørgsler:
Caching (Expire Headers)
• Caching Headers
• Pas på med dynamiske
komponenter
• Indfør versionsnumre
o Javascript_v01.js
o Javascript_v02.js
• Last-Modified løser
næsten problemet
Top 10 tips og tricks
66. 66
• Komprimering af:
HTML, CSS, JavaScript,
Fonts, og ICO-filer
• Ikke billeder, videoer
eller PDF’er
• Konfiguration på
webserver
• Load balancer problem
Uden gzip/deflate
Med gzip/deflate
Reducér indhold:
HTTP Compression
Top 10 tips og tricks
74. 74
JPEG-filer kan indeholde:
• Embedded thumbnail images
• EXIF metadata
• Adobe XMP metadata
• Camera information and settings
• Geographical and timing data
• ICC color profile data
• Comments
• Kan ikke komprimeres med
HTTP Compression!
• Benyt JPEGTran -
http://jpegclub.org/jpegtran/
• Webperformance X-ray
Reducér indhold:
Unoptimized Images - JPEG
Top 10 tips og tricks
76. 76
Reducér indhold:
Unoptimized Images - PNG
Top 10 tips og tricks
PNG-filer kan indeholde:
• Comments
• EXIF metadata
• Unused color or paletta data
• Compressed with an
unoptimized DEFLATE
compressor (Level 1-9)
83. 83
JavaScript i bunden
JavaScript i toppen
<head>
<link rel=”stylesheet” href=”style.css”
type=”text/css”/>
…
</head>
CSS i toppen
Optimér rendering:
CSS in top and
JavaScript at bottom
Top 10 tips og tricks
103. 103
Optimér rendering:
Avoid 3. party SPOF (scripts)
Parametre:
url : Sidens URL
text : Valgfri tekst
hashtags : Kommaseparerede hashtags
Via : Via tekst
https://twitter.com/intent/tweet?url=http://www.eksempel.dk
&text=Performance%20analyse&hashtags=fdih,digicure,web
perf&via=digicuredk
Top 10 tips og tricks
126. 126
”85 % af de mobile
bruger forventer at
mobile sites loader
lige så hurtigt eller
hurtigere end
desktop sites”
Kilde: http://www.strangeloopnetworks.com/web-performance-infographics/
133. 13
3
Båndbredde og svartider
Kilde: http://www.webperformancetoday.com/2013/08/06/8-mobile-performance-
assumptions/
Belastning på radiomast
Vejret
Retning mod radiomast
Afstand
134. 13
4
Fra Holland Fra Australien
Båndbredde og svartider
4G Netværket
- ’Under the hood’
135. 13
5
Men er 4G ikke løsningen på
vores problemer?
NEJ!
Båndbredde og svartider
136. 13
6
Fra Holland Fra Australien
Båndbredde og svartider
4G Netværket
- Vil gøre livet nemmere
LTE/4G 3G
’Idle’ tilstand < 100 ms < 2,5 sek.
Forbundet < 5 ms <50 ms
137. 13
7
Fra Holland Fra Australien
Båndbredde og svartider
4G Netværket
- Vil gøre livet nemmere
4G 3G Edge
AT & T – Core network latency 40-50 ms 50-200 ms 600-750 ms
Kilde: https://docs.google.com/presentation/d/1wAxB5DPN-
rcelwbGO6lCOus_S1rP24LMqA8m1eXEDRo/present#slide=id.g11c1373c5_5_0
138. 13
8
Fra Holland Fra Australien
4G Netværket
- Vil gøre livet nemmere
Radio Access Core Network External Network Samlet latency ‘Idle’
Edge 50 ms 600-750 ms 10-30 ms 670-830 ms +2,5 sek.
3G 50 ms 50-200 ms 10-30 ms 120-280 ms +2,5 sek.
4G 5 ms 40-50 ms 10-30 ms 65-86 ms +100 ms
Desktop - - 10-30 ms 10-30 ms -
Kilde: https://docs.google.com/presentation/d/1wAxB5DPN-
rcelwbGO6lCOus_S1rP24LMqA8m1eXEDRo/present#slide=id.g11c1373c5_5_0
Båndbredde og svartider
139. 13
9
Båndbredde og svartider
4G Netværket
- Vil gøre livet nemmere
• 4G er ikke tilgængelig for os alle
endnu
• 3G netværket forsvinder ikke
foreløbigt
Hvad kan vi gøre ved det?
• Websites størrelse
• Antal forespørgsler (VIGTIG)
Løsninger:
• Reducér mængden af data
• Reducér antallet af forespørgsler
• Komprimering
• Caching
156. 156
Hvad kan optimeres på dit
mobile website
Kilde: http://venturebeat.com/2013/09/19/apples-iphone-5-touchscreen-is-2-5-
times-faster-than-android-devices/
175. 175
Hvornår bør man benytte
en spinner?
<100 ms = Ingen spinner
100-1000 ms = Spinner
1000+ ms = Ingen spinner
Sørg for at ‘Loading’-bjælken
starter på ca. 10 %
Hvad kan optimeres på dit
mobile website
184. 184
Hvilke udfordringer
findes der ifm. RWD?
Download og gem væk
Download og formindsk
Overdreven brug af DOM
Er RWD sites mindre på mobile enheder?
Responsive Images
bør benyttes
187. 187
• Smart-route teknologi
• Komponenter placeret
geografisk tættere på
brugeren
• Typisk statiske
Fordele:
• Reducering af trafik
• Større skalérbarhed
Top 10 tips og tricks
196. 196
Fremtiden indenfor web performance
”Performance
budgettet”
• Tim Kadlec, www.timkadlec.com
• Inddrag performance tidligt i et projekt
• Ender med et langsomt website med
tungt indhold
• Kontrol
• ”Performance budgettet”
Kilde: http://timkadlec.com/2013/01/setting-a-performance-budget/
197. 197
• Fokus på forespørgsler
• Fokus på websites
indhold
• Forespørgsler og indhold
skal reduceres
• Ikke svartider og
tilgængelighed
Fremtiden indenfor web performance
”Performance
budgettet”
198. 198
Fremtiden indenfor web performance
”Performance
budgettet”
• Sætter et budget
• Må ikke overskrides
• Antal forespørgsler og websites
indhold
199. 199
Fremtiden indenfor web performance
”Performance
budgettet”
Eksempel:
Instantalarm.dk
Antal forespørgsler: 30
Websites indhold: 350 KB
200. 200
Fremtiden indenfor web performance
”Performance
budgettet”
Eksempel:
Instantalarm.dk
• Optimér eksisterende features eller
komponenter på websitet
• Fjern eksisterende features eller
komponenter på websitet
• Lad være med at tilføje den nye
feature eller komponent
202. 202
Hvad kommer HTTP 2.0 til
at have af betydning?
Performance og HTTP 2.0
• Reducér latency
• Priotering af forespørgsler
• Server-push events
• Komprimering af HTTP Headers
• ’Streaming’ af data
• Løsning på Head-of-line-blocking
HTTP 2.0 ændrer ikke på data strukturen i
vores HTTP Headers
204. 204
Hvad kommer HTTP 2.0 til
at have af betydning?
’Streaming’ af data
• Streaming af data via en enkel TCP fobindelse
• Elimenering af Head-Of-Line-Blocking
• Priotering af forespørgsler/filtyper
• Lavere CPU og Memory forbrug
• Færre TCP forbindelser == flere samtidige brugere
• Mindre tid på TCP slow-start
• Hurtigere TCP congestion/loss recovery
206. 206
Hvad kommer HTTP 2.0 til
at have af betydning?
’Server push’ events
• Fungerer som inlining og data URIs
• Reducerer latency
• ’Pushed’ filer kan blive cached
• ’Pushed’ filer kan genbruges på flere sider
• ’Pushed’ filer kan prioteres af serveren
207. 207
Hvad kommer HTTP 2.0 til
at have af betydning?
Komprimering af HTTP Headers
• 500-800 bytes + cookie info
• ’Header tables’ – Undgå identiske HTTP Headers
• ’Header tables’ udløber når forbindelsen lukkes
209. 209
Hvad kommer HTTP 2.0 til
at have af betydning?
Komprimering af HTTP Headers
• 500-800 bytes + cookie info
• ’Header tables’ – Undgå identiske HTTP Headers
• ’Header tables’ udløber når forbindelsen lukkes
• Komprimering af data (CRIME sårbarhed løst)
210. 210
Hvad kommer HTTP 2.0 til
at have af betydning?
Store krav til TCP forbindelse
• TCP cwnd == 10 segments
• Support TLS med ALPN negotiation (NPN for
SPDY)
• Support af TLS resumption
Læs High Performance Browser
Networking
211. 211
Hvad kommer HTTP 2.0 til
at have af betydning?
Gamle vaner skal ud
• Domain sharding (Vigtig)
• Combinable JavaScript/CSS
• Image Spriting
• Inlining
• Data URIs
216. Hvem er jeg
Tobias Borg Petersen
216
@_tobibp
tbp@digicure.dk
Webperformance.nu
Performancekonsulent i Digicure
Front End udvikler (.NET)
dk.linkedin.com/in/tobiasbp
Notas do Editor
Responsive Web Design
Internettet kan tilgås og interageres på op til flere forskellige enheder
PC’er, mobiltelefoner, tablets
Internettets evner til at blive tilgået på flere typer og hastigheder af netværk
Båndbredde, latency, mobil netværk, osv.
Web performance har stor betydning for brugeroplevelse
Cases som KISSMetrics, GlassesDirect og Seatwave
Svartider
Tilgængelighed
IKKE ping
Brugernes oplevelse udefra
3. part monitorering
Responsive Web Design
Internettet kan tilgås og interageres på op til flere forskellige enheder
PC’er, mobiltelefoner, tablets
Internettets evner til at blive tilgået på flere typer og hastigheder af netværk
Båndbredde, latency, mobil netværk, osv.
Web performance har stor betydning for brugeroplevelse
Cases som KISSMetrics, GlassesDirect og Seatwave
Responsive Web Design
Internettet kan tilgås og interageres på op til flere forskellige enheder
PC’er, mobiltelefoner, tablets
Internettets evner til at blive tilgået på flere typer og hastigheder af netværk
Båndbredde, latency, mobil netværk, osv.
Web performance har stor betydning for brugeroplevelse
Cases som KISSMetrics, GlassesDirect og Seatwave
Responsive Web Design
Internettet kan tilgås og interageres på op til flere forskellige enheder
PC’er, mobiltelefoner, tablets
Internettets evner til at blive tilgået på flere typer og hastigheder af netværk
Båndbredde, latency, mobil netværk, osv.
Web performance har stor betydning for brugeroplevelse
Cases som KISSMetrics, GlassesDirect og Seatwave
Responsive Web Design
Internettet kan tilgås og interageres på op til flere forskellige enheder
PC’er, mobiltelefoner, tablets
Internettets evner til at blive tilgået på flere typer og hastigheder af netværk
Båndbredde, latency, mobil netværk, osv.
Web performance har stor betydning for brugeroplevelse
Cases som KISSMetrics, GlassesDirect og Seatwave
Responsive Web Design
Internettet kan tilgås og interageres på op til flere forskellige enheder
PC’er, mobiltelefoner, tablets
Internettets evner til at blive tilgået på flere typer og hastigheder af netværk
Båndbredde, latency, mobil netværk, osv.
Web performance har stor betydning for brugeroplevelse
Cases som KISSMetrics, GlassesDirect og Seatwave