11. Einfluss der Ladezeit
Amazon +100 ms 1 % weniger Verkäufe1
Yahoo +400 ms 5-9 % weniger Zugriffe1
Google +500 ms 20 % weniger Zugriffe1
Bing +2000 ms 4,3 % weniger Umsatz/Nutzer2
Shopzilla -5000 ms 25 % mehr Zugriffe
7-12 % mehr Umsatz
50 % weniger Hardware3
Mozilla -2200 ms 15,4 % mehr Downloads4
1 http://www.websiteoptimization.com/speed/tweak/psychology-web-performance/
2 http://www.slideshare.net/dyninc/the-user-and-business-impact-of-server-delays-additional-bytes-and-http-chunking-in-web-search-presentation
3 http://radar.oreilly.com/2009/07/velocity-making-your-site-fast.html
4 http://blog.mozilla.com/metrics/category/website-optimization/
12. User Experience
Empfohlene Ladezeit:
– vor 2006: unter 8 Sekunden Jupiter research
– 2006: unter 4 Sekunden Jupiter research
– 2009: unter 2 Sekunden Forrester Research
„Jede Website, deren Ladezeit eine Sekunde
überschreitet, tut dem Benutzer weh.“ Jakob Nielsen
http://www.stevesouders.com/blog/2010/05/07/wpo-web-performance-optimization/
13. 10 Golden Principles of
Successful Web Apps
Speed
Instant Utility
Software is Media
Less is More
Make it Programmable
Make it Personal
RESTful
Discoverabilty
Clean
Playful
http://thinkvitamin.com/web-apps/fred-wilsons-10-golden-principles-of-successful-web-apps/
14. SEO -> WPO
• Ist Search Engine Optimization ist ein
Thema von gestern?
• Performance beeinflusst Google Ranking
seit April 2010
15. „Das Internet ist nicht
schneller geworden“
http://docs.google.com/a/chromium.org/viewer?a=v&pid=sites&srcid=Y2hyb21pdW0ub3JnfGRldnxneDoxMzcyOWI1N2I4YzI3NzE2
16. PERFORMANCE OPTIMIEREN
Messen: z.B. JMeter
Bottlenecks finden: Profiling des Backends
Code optimieren / mehr Server-Hardware / bessere Server-Anbindung
17. Was wollen wir messen?
Wahrgenommene Wartezeit!
= Inhalt ist für den Nutzer sichtbar
= Nutzer denkt, er kann interagieren
18. Performance messen #1
• HTML-Seite generiert und • Definiertes DOM-Element
geladen sichtbar
• DOM-Ready-Event • „Above the Fold“ (AFT)
DOM ist aufgebaut, Inhalt evtl. keine Änderungen mehr am
sichtbar sichtbaren Inhalt
• OnLoad-Event
alle Ressourcen wurden geladen,
Inhalt evtl. sichtbar
19. Performance messen #2
• verschiedene Clients
• verschiedene Locations
• verschiedenen Anbindungen
• Performance kontinuierlich messen…
30. Intelligentes Browser-Caching
Use HTTPs potential!
• Achtung, ETag!
GET File
Server Client
File
GET File, if modified
Server Client
304 not modified
File
39. Compression & Minifying
netflix.com
“Adopting a single optimization,
gzip compression, resulted in a 13-25% speedup
and cut their outbound network traffic by 50%.”
http://www.stevesouders.com/blog/2010/05/07/wpo-web-performance-optimization/
49. Order of loading resources
<script> blockiert weitere Downloads
<script> blockiert Rendering
-> Reihenfolge beachten
-> defer/async-Attribute bzw. Loading-Tools nutzen
50. Order of loading resources
DOM-ready onLoad
Zwingend Sichtbare Ergänzende
CSS notwendige Scripts Pre-/Lazy-Loading
Grafiken Scripts
base.css modernizr.min.js background.jpg dragndrop.js
button.png lightbox.js
<head> <body> Dynamisch per JS
65. Sehr gute Tools verfügbar
• Yahoo YSlow
• Google PageSpeed
• Dynatrace AJAX Edition
• WebPageTest.org
66. Vieles lässt sich automatisieren
Integration in den Deployment/Build-Prozess
– JS/CSS-Dateien kombinieren
– Compression & Minifying
– Caching und Cache busters
– Bildoptimierung
– Verteilung auf CDN
67. Auf dem Server
• On-the-fly
– Mod_deflate
– Mod_pagespeed
– WEBO Site SpeedUp (PHP)
68. Externe (kommerzielle) Services
• On-the-fly in der Cloud
– blaze.io
– strangeloop.com
– Google Page Speed Service
• Monitoring
– Gomez
69. HTML 5 + CSS 3 + JavaScript
• CSS 3
– CSS statt Grafiken
– Canvas
• HTML 5
– Network Timing API
– Web Storage statt Cookies
– Web Workers
– Web Sockets
• JavaScript!!!
70. Multiplexed streams
Request prioritization Server push & hint
HTTP header compression
Was Google hat, was wir (noch) nicht haben…
GOOGLE + CHROME use SPDY
An experimental protocol
for a faster web
~50% reduction in page load time
71.
72. Entlastet auch
Enorme die Server Basics sind einfach
Auswirkungen
Best Practices
Frontend
Performance
beachten &
weiter optimieren matters!
Kosten/Nutzen abwägen
Direkte Verbesserung
für die Nutzer
don‘t fiddle – analyse first
Mobiles Internet
RIA
73. Weiterführend
• Bücher:
– Steve Souders: High Performance Websites
– Steve Souders: Even Faster Websites
• Test-Webseite: http://stevesouders.com/cuzillion
• http://developer.yahoo.com/performance/
• http://code.google.com/intl/de-DE/speed/
76. Dynamische Bildauslieferung
• /image/w200/11259834/hdm-stuttgart.jpg
• Optimale Lösung:
– Server-seitiges Caching
– Client-seitiges Caching
• Cache Header + Expires Header + HTTP 304 Not Modified
• Cache buster + Redirect für alte URLs
– PHP nur wenn wirklich benötigt
• Mod_rewrite
77. Best practices
• Nicht alles muss neu erfunden werden
– HTML5 Boilerplate verwenden
• data-URLs
• http://caniuse.com/
• Memory Leaks im Client
• Messen was auf dem Client passiert
78. Frontend
Performance
Jakob Schröter
jakob.schroeter@seitenbau.com