Transcript
Page 1: Digicure seminar i Jylland | Session 2, web performance optimering

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

Page 2: Digicure seminar i Jylland | Session 2, web performance optimering

Hvem er jegTobias Borg Petersen

2

@_tobibp

[email protected]

Webperformance.nu

Performancekonsulent i Digicure

Front End udvikler (.NET)

dk.linkedin.com/in/tobiasbp

Page 3: Digicure seminar i Jylland | Session 2, web performance optimering

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

Page 4: Digicure seminar i Jylland | Session 2, web performance optimering

AgendaTobias 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?

Page 5: Digicure seminar i Jylland | Session 2, web performance optimering

5

Page 6: Digicure seminar i Jylland | Session 2, web performance optimering

6

Hvorfor optimere web performance?

Page 7: Digicure seminar i Jylland | Session 2, web performance optimering

7

Websites bliver langsommere og langsommere…

Page 8: Digicure seminar i Jylland | Session 2, web performance optimering

8

Danske webshops Danske kommuner

Web performanceHvordan står det til i dag?

Kilde: http://www.digicure.dk/performance.html

Page 9: Digicure seminar i Jylland | Session 2, web performance optimering

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

Page 10: Digicure seminar i Jylland | Session 2, web performance optimering

10Kilde: 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

Page 11: Digicure seminar i Jylland | Session 2, web performance optimering

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

Page 12: Digicure seminar i Jylland | Session 2, web performance optimering

12

1.5 seconds == SLOW

Kilde: http://www.nccgroup.com/media/19242/seatwave_our_optimisation_story.pdf

Web performance – Hvorfor?Search Engine Optimization (SEO)

Page 13: Digicure seminar i Jylland | Session 2, web performance optimering

13

De besøgendes forventninger

Page 14: Digicure seminar i Jylland | Session 2, web performance optimering

14

Højere krav til performance

2006 = <4 sekunder

2009 = <2 sekunder

2013 = <1 sekund

1960 = <10 sekunder

De besøgendes forventninger

Page 15: Digicure seminar i Jylland | Session 2, web performance optimering

15

Web performance optimering

Page 16: Digicure seminar i Jylland | Session 2, web performance optimering

16

Båndbredde og svartider

Page 17: Digicure seminar i Jylland | Session 2, web performance optimering

17

Vil den stigende hastighed på båndbreddelinjerne løse vores problemer?

NEJ!

Båndbredde og svartider

Page 18: Digicure seminar i Jylland | Session 2, web performance optimering

18

Båndbredde og svartider

Page 19: Digicure seminar i Jylland | Session 2, web performance optimering

19

Båndbredde og svartider

Båndredde og latency

• Båndbredde indikerer ‘tykkelsen’• Latency indikerer transporttiden • Transporttiden fra A til B == Latency

Page 20: Digicure seminar i Jylland | Session 2, web performance optimering

Fra Danmark

20

Båndbredde og svartider

Page 21: Digicure seminar i Jylland | Session 2, web performance optimering

21

Latency == transporttiden fra A til B

Båndbredde

Page 22: Digicure seminar i Jylland | Session 2, web performance optimering

Fra Danmark

22

Båndbredde og svartider

Page 23: Digicure seminar i Jylland | Session 2, web performance optimering

23

Båndbredde og svartiderFra Danmark Fra Australien

Page 24: Digicure seminar i Jylland | Session 2, web performance optimering

24

Båndbredde og svartider

Fra Danmark Fra Australien

Page 25: Digicure seminar i Jylland | Session 2, web performance optimering

25

Båndbredde og svartider

Streaming er begrænset af båndbredde

Web browsing er begrænset af latency

Page 26: Digicure seminar i Jylland | Session 2, web performance optimering

26

Hvordan indlæserbrowseren et website

Page 27: Digicure seminar i Jylland | Session 2, web performance optimering

27Link: http://www.websiteoptimization.com/secrets/metrics/10-21-http-request.html

Page 28: Digicure seminar i Jylland | Session 2, web performance optimering

28

Page 29: Digicure seminar i Jylland | Session 2, web performance optimering

29

Ekstra info:

• CSS filer• JavaScript filer

Page 30: Digicure seminar i Jylland | Session 2, web performance optimering

30

Page 31: Digicure seminar i Jylland | Session 2, web performance optimering

31

Dit websites svartider skal være hurtigere

Hvilke typer værktøjer har man behov for?

Page 32: Digicure seminar i Jylland | Session 2, web performance optimering

32

Hvilke typer af værktøjer har man behov for?

Page 33: Digicure seminar i Jylland | Session 2, web performance optimering

33

Udvælg de rigtige værktøjer

Monitorering

Test

Optimering

Hvilke typer af værktøjer har man behov for?

Page 34: Digicure seminar i Jylland | Session 2, web performance optimering

34

• Svartider

• Tilgængelighed

• IKKE kun ping

• Brugernes oplevelse udefra

• 3. part monitorering

Monitorering

Testværktøjer – Web performance

Page 35: Digicure seminar i Jylland | Session 2, web performance optimering

35

Ikke i blinde!

Du kan ikke forbedre det du ikke måler på!

Testværktøjer – Web performance

Page 36: Digicure seminar i Jylland | Session 2, web performance optimering

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

Page 37: Digicure seminar i Jylland | Session 2, web performance optimering

37

Performance optimering

• Lokalisér potentielle optimeringstiltag

• Udbedre ’flaskehalse’

• Reducér svartider

• Reducér båndbreddeforbrug

• Reducér belastning på it-infrastruktur

Testværktøjer – Web performance

Page 38: Digicure seminar i Jylland | Session 2, web performance optimering

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 forskelligeSammenligning af scanninger

Nej Nej Ja

API Ja Ja JaDansk support Nej Nej Ja

Testværktøjer – Web performance

Page 39: Digicure seminar i Jylland | Session 2, web performance optimering

39

Testværktøjer – Web performance

Værktøjet som bliver benyttet

Page 40: Digicure seminar i Jylland | Session 2, web performance optimering

40

Værktøjerne er på

plads!

Hvilke typer af værktøjer har man behov for?

Page 41: Digicure seminar i Jylland | Session 2, web performance optimering

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?

Page 42: Digicure seminar i Jylland | Session 2, web performance optimering

• Reducering af antal HTTP forespørgsler

• Reducering af website indholdet

Hvilke typer af værktøjer har man behov for?

Page 43: Digicure seminar i Jylland | Session 2, web performance optimering

43

Optimér websitet – Køb ikke mere hardware

500 kb90 req.

250 kb45 req.

Hvilke typer af værktøjer har man behov for?

Page 44: Digicure seminar i Jylland | Session 2, web performance optimering

44

Gør som Seatwave

Hvilke typer af værktøjer har man behov for?

Page 45: Digicure seminar i Jylland | Session 2, web performance optimering

45

Reducér antalletaf forespørgsler

Top 10 tips og tricks til at øge performance niveauet

Page 46: Digicure seminar i Jylland | Session 2, web performance optimering

46

1)

Combinable JavaScript/CSS files

Page 47: Digicure seminar i Jylland | Session 2, web performance optimering

47

• Dyre HTTP forespørgsler• Længere svartider• Større belastning på

infrastrukturen

• Effektiv komprimeringReducér forespørgsler:Combinable

JavaScript/CSS files

Top 10 tips og tricks

Page 48: Digicure seminar i Jylland | Session 2, web performance optimering

48

Top 10 tips og tricks

Page 49: Digicure seminar i Jylland | Session 2, web performance optimering

49

Hvor gode er I?

Page 50: Digicure seminar i Jylland | Session 2, web performance optimering

50

8 8

Page 51: Digicure seminar i Jylland | Session 2, web performance optimering

51

2)

Domain Sharding

Page 52: Digicure seminar i Jylland | Session 2, web performance optimering

52

Reducér forespørgsler:Domain Sharding

• 6 åbne forbindelse ad gangen

• Per domæne

• Statiske komponenter

• Cookie-less domæner

Top 10 tips og tricks

Page 53: Digicure seminar i Jylland | Session 2, web performance optimering

53

Top 10 tips og tricks

Page 54: Digicure seminar i Jylland | Session 2, web performance optimering

54

Hvor gode er I?

Page 55: Digicure seminar i Jylland | Session 2, web performance optimering

55

4 12

Page 56: Digicure seminar i Jylland | Session 2, web performance optimering

56

Reducér forespørgsler:Domain Sharding

Top 10 tips og tricks

www.browserscope.org

Page 57: Digicure seminar i Jylland | Session 2, web performance optimering

57

3)

Caching (Expire Headers)

Page 58: Digicure seminar i Jylland | Session 2, web performance optimering

58

“The fastest HTTP request is the one not made.” - Steve Souders

Reducér forespørgsler:Caching (Expire Headers)

Top 10 tips og tricks

Page 59: Digicure seminar i Jylland | Session 2, web performance optimering

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 versionsnumreo Javascript_v01.jso Javascript_v02.js

• Last-Modified løser næsten problemet

Top 10 tips og tricks

Page 60: Digicure seminar i Jylland | Session 2, web performance optimering

60

Reducér forespørgsler:Caching (Expire Headers)

Top 10 tips og tricks

Page 61: Digicure seminar i Jylland | Session 2, web performance optimering

61

Reducér forespørgsler:Caching (Expire Headers)

Top 10 tips og tricks

Page 62: Digicure seminar i Jylland | Session 2, web performance optimering

62

Hvor gode er I?

Page 63: Digicure seminar i Jylland | Session 2, web performance optimering

63

7 9

Page 64: Digicure seminar i Jylland | Session 2, web performance optimering

64

Reducér indhold

Top 10 tips og tricks

Page 65: Digicure seminar i Jylland | Session 2, web performance optimering

65

4)

Activate HTTP Compression

Page 66: Digicure seminar i Jylland | Session 2, web performance optimering

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

Page 67: Digicure seminar i Jylland | Session 2, web performance optimering

67

Reducér indhold:HTTP Compression

Top 10 tips og tricks

Page 68: Digicure seminar i Jylland | Session 2, web performance optimering

68

Hvor gode er I?

Page 69: Digicure seminar i Jylland | Session 2, web performance optimering

69

11 5

Page 70: Digicure seminar i Jylland | Session 2, web performance optimering

70

5)

Minify JavaScript/CSS-files

Page 71: Digicure seminar i Jylland | Session 2, web performance optimering

71

Reducér indhold:Minify JavaScript/CSS-files

/* Highlight */ #content table tr.sfhover, #content table tr.sfhover td {

background-color: #b5dff3;color: #000

} /* Selected */

/* This always takes precedence over highlight color! */ #content table.ledger tr.selected td, #content table tr.selected td { background-color: #4775d1;

color: #fff; border-left: 1px solid #346dbe; border-bottom: 1px solid #7daaea

}

#content table tr.sfhover,#content table tr.sfhover td{background-color:#b5dff3;color:#000}#content table.ledger tr.selected td,#content table tr.selected td{background-color:#4775d1;color:#fff;border-left:1px solid #346dbe;border-bottom:1px solid #7daaea}

Minified

Not Minified

Top 10 tips og tricks

Page 72: Digicure seminar i Jylland | Session 2, web performance optimering

72

Reducér indhold:Minify JavaScript/CSS-files

• YUI Compressor, Java baseret command line - developer.yahoo.com/yui/compressor/• CSS Tidy - http://csstidy.sourceforge.net/ • Webperformance X-ray - http://www.digicure.dk/webperformance-x-ray.html

Top 10 tips og tricks

Page 73: Digicure seminar i Jylland | Session 2, web performance optimering

73

6)

Unoptimized Images

Page 74: Digicure seminar i Jylland | Session 2, web performance optimering

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

Page 75: Digicure seminar i Jylland | Session 2, web performance optimering

75

Reducér indhold:Unoptimized Images - JPEG

Top 10 tips og tricks

Page 76: Digicure seminar i Jylland | Session 2, web performance optimering

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)

Page 77: Digicure seminar i Jylland | Session 2, web performance optimering

77

7)

JPEG Candidate Images

Page 78: Digicure seminar i Jylland | Session 2, web performance optimering

78

Reducér indhold:JPEG Candidate Images

879 kb

ImageMagick.org

• PNG/GIF filer JPEG filer

• Reducering i størrelse

Ulemper:• Skarpe hjørner (logoer

eller grafer)

45 kb~94 %

Top 10 tips og tricks

Page 79: Digicure seminar i Jylland | Session 2, web performance optimering

79

8)

High Quality JPEG Image

Page 80: Digicure seminar i Jylland | Session 2, web performance optimering

80

Reducér indhold:JPEG Candidate Images

• JPEG Quality 100 JPEG Quality 75

• Reducering i størrelse

Ulemper:• Dårligere kvalitet

Top 10 tips og tricks

ImageMagick.org

Page 81: Digicure seminar i Jylland | Session 2, web performance optimering

81

Optimér rendering

Top 10 tips og tricks

Page 82: Digicure seminar i Jylland | Session 2, web performance optimering

82

9)

CSS in top / JavaScript at bottom

Page 83: Digicure seminar i Jylland | Session 2, web performance optimering

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

Page 84: Digicure seminar i Jylland | Session 2, web performance optimering

84

Hvor gode er I?

Page 85: Digicure seminar i Jylland | Session 2, web performance optimering

85

8 8

Page 86: Digicure seminar i Jylland | Session 2, web performance optimering

86

10)

Apply Image Tag Dimensions

Page 87: Digicure seminar i Jylland | Session 2, web performance optimering

87

Optimér rendering:Apply Image Tag Dimensions

<html> <title>Funny Birds</title> <p> ... ... lots of content about birds ... ... </p> <img src="bird.jpg" /> <p> ... ... more content about birds ... ... </p> </html>

<html> <title>Funny Birds</title> <p> ... ... lots of content about birds ... ... </p> <img src="bird.jpg“width="30" height="20" /> <p> ... ... more content about birds ... ... </p> </html>

Top 10 tips og tricks

Page 88: Digicure seminar i Jylland | Session 2, web performance optimering

88

11) Ekstra

Prioritize visible content

Page 89: Digicure seminar i Jylland | Session 2, web performance optimering

89

Optimér rendering:Prioritize visible content

Top 10 tips og tricks

Page 90: Digicure seminar i Jylland | Session 2, web performance optimering

90

Optimér rendering:Prioritize visible content

Top 10 tips og tricks

Page 91: Digicure seminar i Jylland | Session 2, web performance optimering

91

Optimér rendering:Prioritize visible content

Top 10 tips og tricks

Page 92: Digicure seminar i Jylland | Session 2, web performance optimering

92

12) – Ekstra

Avoid 3. party SPOF (scripts)

Page 93: Digicure seminar i Jylland | Session 2, web performance optimering

93

DNS

Load Balancers App Servers

Read-only DB

Master DB

Optimér rendering:Avoid 3. party SPOF (scripts)

Top 10 tips og tricks

Page 94: Digicure seminar i Jylland | Session 2, web performance optimering

94

Optimér rendering:Avoid 3. party SPOF (scripts)

Top 10 tips og tricks

Page 95: Digicure seminar i Jylland | Session 2, web performance optimering

95

Optimér rendering:Avoid 3. party SPOF (scripts)

Top 10 tips og tricks

Page 96: Digicure seminar i Jylland | Session 2, web performance optimering

96

Optimér rendering:Avoid 3. party SPOF (scripts)

Top 10 tips og tricks

Page 97: Digicure seminar i Jylland | Session 2, web performance optimering

97

Optimér rendering:Avoid 3. party SPOF (scripts)

Top 10 tips og tricks

Page 98: Digicure seminar i Jylland | Session 2, web performance optimering

98

Optimér rendering:Avoid 3. party SPOF (scripts)

Top 10 tips og tricks

Page 99: Digicure seminar i Jylland | Session 2, web performance optimering

99

Optimér rendering:Avoid 3. party SPOF (scripts)

Top 10 tips og tricks

Page 100: Digicure seminar i Jylland | Session 2, web performance optimering

100

Se dig for når du implementerer 3. part JavaScript til social widgets

Top 10 tips og tricks

Page 101: Digicure seminar i Jylland | Session 2, web performance optimering

101

Optimér rendering:Avoid 3. party SPOF (scripts)

Facebook buttons == 270 Kb!

Parametre:

u : Sidens URL

Top 10 tips og tricks

Page 102: Digicure seminar i Jylland | Session 2, web performance optimering

102

Optimér rendering:Avoid 3. party SPOF (scripts)

Top 10 tips og tricks

Page 103: Digicure seminar i Jylland | Session 2, web performance optimering

103

Optimér rendering:Avoid 3. party SPOF (scripts)

Parametre:

url : Sidens URLtext : Valgfri teksthashtags : Kommaseparerede hashtagsVia : Via tekst

https://twitter.com/intent/tweet?url=http://www.eksempel.dk

&text=Performance

%20analyse&hashtags=fdih,digicure,webperf&via=digicuredk

Top 10 tips og tricks

Page 104: Digicure seminar i Jylland | Session 2, web performance optimering

104

Optimér rendering:Avoid 3. party SPOF (scripts)

Top 10 tips og tricks

Page 105: Digicure seminar i Jylland | Session 2, web performance optimering

105

https://plus.google.com/share?url=http://digicure.dk

http://www.linkedin.com/shareArticle?mini=true&url=http://www.digicure.dk&title=Performance analyse&source=Digicure&summary=I analysen har Digicure udf%F8rt performance-checks p%E5 505 FDIH medlemmers websites forside, og benchmarket dem ift. hinanden.

Parametre:

mini=true : Påkræveturl: URLtitle : Valgfri titelsource : Valgfri kildesummary : Valgfrit resumé

Parametre:

url : URL

Top 10 tips og tricks

Page 106: Digicure seminar i Jylland | Session 2, web performance optimering

106

Hvor gode er I?

Page 107: Digicure seminar i Jylland | Session 2, web performance optimering

107

10 6

Page 108: Digicure seminar i Jylland | Session 2, web performance optimering

108

13) – Ekstra

CDNPerf.com

Page 109: Digicure seminar i Jylland | Session 2, web performance optimering

109

Optimér rendering:3. Party JavaScript Libraries

www.cdnperf.com

Top 10 tips og tricks

Page 110: Digicure seminar i Jylland | Session 2, web performance optimering

110

Top 10 tips og tricks

Optimér rendering:3. Party JavaScript Libraries

Page 111: Digicure seminar i Jylland | Session 2, web performance optimering

111

14) – Ekstra

Embedded YouTubes

Page 112: Digicure seminar i Jylland | Session 2, web performance optimering

112

Optimér rendering:Embedded YouTubes

www.webperformance.nu

Top 10 tips og tricks

400 KB!!

Page 113: Digicure seminar i Jylland | Session 2, web performance optimering

113

Optimér rendering:Embedded YouTubes

www.webperformance.nu

Top 10 tips og tricks

3 KB!!

Page 114: Digicure seminar i Jylland | Session 2, web performance optimering

114

Optimér rendering:Embedded YouTubes

www.webperformance.nu

Top 10 tips og tricks

Ikke optimeret

Optimeret

Page 115: Digicure seminar i Jylland | Session 2, web performance optimering

115

Opsummering

Combinable JavaScripts 8 8Domain Sharding 4 12Caching 7 9HTTP Compression 11 5CSS i top / JS i bund 8 83. part SPOF 10 6

Page 116: Digicure seminar i Jylland | Session 2, web performance optimering

116

Performance analyse

Seminar Jylland

Seminar KBH

WebshopsOkt 2013

International(httparchive.org)

Forespørgsler 81 req. 82 req. 80 req. 94 req.

Størrelse 1366 KB 1639 KB 1.229 KB 1590 KB

Potentiel Besparelse (størrelse)

15,73 % 20,5 % 19 % --

Page 117: Digicure seminar i Jylland | Session 2, web performance optimering

117

Og husk nu…

Page 118: Digicure seminar i Jylland | Session 2, web performance optimering

118

Performance optimering som en løbende proces

Page 119: Digicure seminar i Jylland | Session 2, web performance optimering

119

Performance optimering - som en løbende proces

Page 120: Digicure seminar i Jylland | Session 2, web performance optimering

120

Mobil performance optimering

Page 121: Digicure seminar i Jylland | Session 2, web performance optimering

121

Fremtiden indenfor web performance

Mobil performance

Page 122: Digicure seminar i Jylland | Session 2, web performance optimering

122Kilde: http://www.businessinsider.com/mobile-will-eclipse-desktop-by-2014-2012-6

Page 123: Digicure seminar i Jylland | Session 2, web performance optimering

123

Adgang fra flere forskellige enheder

Page 124: Digicure seminar i Jylland | Session 2, web performance optimering

124

Page 125: Digicure seminar i Jylland | Session 2, web performance optimering

125

Er de mobile brugere mere tålmodige?

Page 126: Digicure seminar i Jylland | Session 2, web performance optimering

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/

Page 127: Digicure seminar i Jylland | Session 2, web performance optimering

127

Page 128: Digicure seminar i Jylland | Session 2, web performance optimering

128

”75 % af de mobile bruger vil forlade et website, hvis det tager længere end 5 sekunder at få indholdet vist”

Page 129: Digicure seminar i Jylland | Session 2, web performance optimering

129

Båndbredde og mobilnetværket

Page 130: Digicure seminar i Jylland | Session 2, web performance optimering

130

Fremtiden indenfor web performance

Det mobile netværk

Båndbredde

Latency

Page 131: Digicure seminar i Jylland | Session 2, web performance optimering

131

Båndbredde og svartider

Latency

Page 132: Digicure seminar i Jylland | Session 2, web performance optimering

132

Fra Holland Fra Australien

Hvad kan optimeres på dit website

Page 133: Digicure seminar i Jylland | Session 2, web performance optimering

133

Båndbredde og svartider

Kilde: http://www.webperformancetoday.com/2013/08/06/8-mobile-performance-assumptions/

Belastning på radiomast

Vejret

Retning mod radiomast

Afstand

Page 134: Digicure seminar i Jylland | Session 2, web performance optimering

134

Fra Holland Fra Australien

Båndbredde og svartider

4G Netværket - ’Under the hood’

Page 135: Digicure seminar i Jylland | Session 2, web performance optimering

135

Men er 4G ikke løsningen på vores problemer?

NEJ!

Båndbredde og svartider

Page 136: Digicure seminar i Jylland | Session 2, web performance optimering

136

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

Page 137: Digicure seminar i Jylland | Session 2, web performance optimering

137

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

Page 138: Digicure seminar i Jylland | Session 2, web performance optimering

138

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

Page 139: Digicure seminar i Jylland | Session 2, web performance optimering

139

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

Page 140: Digicure seminar i Jylland | Session 2, web performance optimering

140

Performance optimering

Testværktøjer Mobil performance

Page 141: Digicure seminar i Jylland | Session 2, web performance optimering

141

Performance værktøjer

Testværktøjer Mobil performance

Page 142: Digicure seminar i Jylland | Session 2, web performance optimering

142www.webpagetest.org

Testværktøjer – Web performance

Page 143: Digicure seminar i Jylland | Session 2, web performance optimering

143Mobitest.akamai.com

Testværktøjer – Web performance

Page 144: Digicure seminar i Jylland | Session 2, web performance optimering

144Httpwatch.com

Testværktøjer – Web performance

Page 145: Digicure seminar i Jylland | Session 2, web performance optimering

145Google.dk/chrome

Testværktøjer – Web performance

F12

Page 146: Digicure seminar i Jylland | Session 2, web performance optimering

146Google.dk/chrome

Testværktøjer – Web performance

Page 147: Digicure seminar i Jylland | Session 2, web performance optimering

147Google.dk/chrome

Testværktøjer – Web performance

Page 148: Digicure seminar i Jylland | Session 2, web performance optimering

148Google.dk/chrome

Testværktøjer – Web performance

Page 149: Digicure seminar i Jylland | Session 2, web performance optimering

149Digicure.dk

Testværktøjer – Web performance

Page 150: Digicure seminar i Jylland | Session 2, web performance optimering

150Digicure.dk

Testværktøjer – Web performance

Page 151: Digicure seminar i Jylland | Session 2, web performance optimering

151Digicure.dk

Testværktøjer – Web performance

Page 152: Digicure seminar i Jylland | Session 2, web performance optimering

152Digicure.dk

Testværktøjer – Web performance

Page 153: Digicure seminar i Jylland | Session 2, web performance optimering

153Digicure.dk

Testværktøjer – Web performance

Page 154: Digicure seminar i Jylland | Session 2, web performance optimering

154

Optimering af mobile websites

Page 155: Digicure seminar i Jylland | Session 2, web performance optimering

155

15)

Eleminate software latency

Page 156: Digicure seminar i Jylland | Session 2, web performance optimering

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/

Page 157: Digicure seminar i Jylland | Session 2, web performance optimering

157

Fast-Click

300 ms. forsinkelse

Dobbelt-klik

Løsningen findes!

Hvad kan optimeres på dit mobile website

Page 158: Digicure seminar i Jylland | Session 2, web performance optimering

158

Fast-Click

Kilde: http://labs.ft.com/2011/08/fastclick-native-like-tapping-for-touch-apps/

Hvad kan optimeres på dit mobile website

Page 159: Digicure seminar i Jylland | Session 2, web performance optimering

159

InstantClick.io

Kilde: http://instantclick.io/

Hvad kan optimeres på dit mobile website

Page 160: Digicure seminar i Jylland | Session 2, web performance optimering

160

kortlink.dk/e9k2

DemoFast-Click

Hvad kan optimeres på dit mobile website

Page 161: Digicure seminar i Jylland | Session 2, web performance optimering

161

DemoFast-Click

Hvad kan optimeres på dit mobile website

Page 162: Digicure seminar i Jylland | Session 2, web performance optimering

162

16)

Turn Off Autocorrect and Autocapitalize

Page 163: Digicure seminar i Jylland | Session 2, web performance optimering

163

<input type=”text” autocapitalize=”off” autocorrect=”off”>

HTML5 input typer

Hvad kan optimeres på dit mobile website

Page 164: Digicure seminar i Jylland | Session 2, web performance optimering

164

Page 165: Digicure seminar i Jylland | Session 2, web performance optimering

165

<input type=”text”>

<input type=”url”

<input type=”email”>

<input type=”text” pattern=”[09]*”

HTML5 input typer

Hvad kan optimeres på dit mobile website

Page 166: Digicure seminar i Jylland | Session 2, web performance optimering

166

17)

Perceived Performancevs.

Actual Performance

Page 167: Digicure seminar i Jylland | Session 2, web performance optimering

167Kilde: http://www.nytimes.com/2012/08/19/opinion/sunday/why-waiting-in-line-is-torture.html?pagewanted=all&_r=0

Hvad kan optimeres på dit mobile website

Perceived Performance vs. Actual Performance

Page 168: Digicure seminar i Jylland | Session 2, web performance optimering

168Kilde: http://www.nytimes.com/2012/08/19/opinion/sunday/why-waiting-in-line-is-torture.html?pagewanted=all&_r=0

Hvad kan optimeres på dit mobile website

Perceived Performance vs. Actual Performance

Page 169: Digicure seminar i Jylland | Session 2, web performance optimering

169

Hvad kan optimeres på dit mobile website

Perceived Performance vs. Actual Performance

Page 170: Digicure seminar i Jylland | Session 2, web performance optimering

170

Hvad kan optimeres på dit mobile website

Perceived Performance vs. Actual Performance

Page 171: Digicure seminar i Jylland | Session 2, web performance optimering

171

Loading…

Hvad kan optimeres på dit mobile website

Page 172: Digicure seminar i Jylland | Session 2, web performance optimering

172

Loading…

Kilde: http://www.lukew.com/ff/entry.asp?1797=

Hvad kan optimeres på dit mobile website

Page 173: Digicure seminar i Jylland | Session 2, web performance optimering

173

Loading…

Hvad kan optimeres på dit mobile website

Page 174: Digicure seminar i Jylland | Session 2, web performance optimering

174

Loading…

Hvad kan optimeres på dit mobile website

Page 175: Digicure seminar i Jylland | Session 2, web performance optimering

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

Page 176: Digicure seminar i Jylland | Session 2, web performance optimering

176

18)

ResponsiveWeb

Design (RWD)

Page 177: Digicure seminar i Jylland | Session 2, web performance optimering

177

Det her er ikke internettet

Hvad kan optimeres på dit mobile website

Page 178: Digicure seminar i Jylland | Session 2, web performance optimering

178

Det her er internettet

Hvad kan optimeres på dit mobile website

Page 179: Digicure seminar i Jylland | Session 2, web performance optimering

179

Det her bliver internettet

Hvad kan optimeres på dit mobile website

Page 180: Digicure seminar i Jylland | Session 2, web performance optimering

180

”If your website is 15mb, it’s not HTML5 or RWD. It’s

stupid”- Christian Heilmann

Page 181: Digicure seminar i Jylland | Session 2, web performance optimering

181Kilde: http://www.guypo.com/uncategorized/real-world-rwd-performance-take-2/

Hvad kan optimeres på dit mobile website

Page 182: Digicure seminar i Jylland | Session 2, web performance optimering

182Kilde: http://www.guypo.com/uncategorized/real-world-rwd-performance-take-2/

Hvad kan optimeres på dit mobile website

Page 183: Digicure seminar i Jylland | Session 2, web performance optimering

183Kilde: http://www.guypo.com/uncategorized/real-world-rwd-performance-take-2/

Hvad kan optimeres på dit mobile website

Page 184: Digicure seminar i Jylland | Session 2, web performance optimering

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

Page 185: Digicure seminar i Jylland | Session 2, web performance optimering

185

Content Delivery Network (CDN)

Når forretningen bliver global

Page 186: Digicure seminar i Jylland | Session 2, web performance optimering

186

Reducér forespørgsler:Content Delivery Network (CDN)

Top 10 tips og tricks

Page 187: Digicure seminar i Jylland | Session 2, web performance optimering

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

Page 188: Digicure seminar i Jylland | Session 2, web performance optimering

188

Reducér forespørgsler:Content Delivery Network (CDN)

Top 10 tips og tricks

Page 189: Digicure seminar i Jylland | Session 2, web performance optimering

189

Fra Holland Fra Australien

Top 10 tips og tricks

Page 190: Digicure seminar i Jylland | Session 2, web performance optimering

190

Fra Holland Fra Australien

Top 10 tips og tricks

Page 191: Digicure seminar i Jylland | Session 2, web performance optimering

191

Reducér forespørgsler:Content Delivery Network (CDN)

Top 10 tips og tricks

Page 192: Digicure seminar i Jylland | Session 2, web performance optimering

192

www.cloudflare.com

Reducér forespørgsler:Content Delivery Network (CDN)

Top 10 tips og tricks

Page 193: Digicure seminar i Jylland | Session 2, web performance optimering

193

Fremtiden indenfor web performance

Hvor er vi på vej hen?

Page 194: Digicure seminar i Jylland | Session 2, web performance optimering

194

Højere krav til performance

2006 = <4 sekunder

2009 = <2 sekunder

2013 = <1 sekund

1960 = <10 sekunder

De besøgendes forventninger

Page 195: Digicure seminar i Jylland | Session 2, web performance optimering

195

Performance budgettet

Page 196: Digicure seminar i Jylland | Session 2, web performance optimering

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/

Page 197: Digicure seminar i Jylland | Session 2, web performance optimering

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”

Page 198: Digicure seminar i Jylland | Session 2, web performance optimering

198

Fremtiden indenfor web performance

”Performance budgettet”

• Sætter et budget

• Må ikke overskrides

• Antal forespørgsler og websites indhold

Page 199: Digicure seminar i Jylland | Session 2, web performance optimering

199

Fremtiden indenfor web performance

”Performance budgettet”

Eksempel:Instantalarm.dk

Antal forespørgsler: 30

Websites indhold: 350 KB

Page 200: Digicure seminar i Jylland | Session 2, web performance optimering

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

Page 201: Digicure seminar i Jylland | Session 2, web performance optimering

201

HTTP 2.0

Page 202: Digicure seminar i Jylland | Session 2, web performance optimering

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

Page 203: Digicure seminar i Jylland | Session 2, web performance optimering

203

Hvad kommer HTTP 2.0 til at have af betydning?

’Streaming’ af data

Page 204: Digicure seminar i Jylland | Session 2, web performance optimering

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

Page 205: Digicure seminar i Jylland | Session 2, web performance optimering

205

Hvad kommer HTTP 2.0 til at have af betydning?

’Server push’ events

Page 206: Digicure seminar i Jylland | Session 2, web performance optimering

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

Page 207: Digicure seminar i Jylland | Session 2, web performance optimering

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

Page 208: Digicure seminar i Jylland | Session 2, web performance optimering

208

Hvad kommer HTTP 2.0 til at have af betydning?

Page 209: Digicure seminar i Jylland | Session 2, web performance optimering

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)

Page 210: Digicure seminar i Jylland | Session 2, web performance optimering

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

Page 211: Digicure seminar i Jylland | Session 2, web performance optimering

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

Page 212: Digicure seminar i Jylland | Session 2, web performance optimering

212

HTTP 2.0 eller HTTP 1.1?

Page 213: Digicure seminar i Jylland | Session 2, web performance optimering

Gratis scanning af forside

Page 214: Digicure seminar i Jylland | Session 2, web performance optimering

214

Fremtiden indenfor web performance

Page 215: Digicure seminar i Jylland | Session 2, web performance optimering

Tobias Borg Petersen,

mail: [email protected]: digicure.dk

Page 216: Digicure seminar i Jylland | Session 2, web performance optimering

Hvem er jegTobias Borg Petersen

216

@_tobibp

[email protected]

Webperformance.nu

Performancekonsulent i Digicure

Front End udvikler (.NET)

dk.linkedin.com/in/tobiasbp