Warum ist die Performance mit für den Erfolg von Webprojekten entscheidend?
Welche Auswirkungen kann eine zusätzliche Sekunde Ladezeit in Bezug auf die Webseiten-Hits und den Umsatz haben? Und vor allem: wie können wir Entwickler die Performance deutlich verbessern? Und zwar ohne neue Hardware anzuschaffen.
Eine Einführung in die Web Performance Optimierung (SEITENBAU Developer Convention 2011 - 24.09.2011)
- Wie betrachtet ein Nutzer eine Webseite?
- Wie kann man die Performance messen?
- Welche Optimierungsmöglichkeiten gibt es?
- Client-seitige Optimierungen
- Server-seitige Optimierungen
- Automatisierung der Optimierungen
- Blick in die Zukunft (u.A.: Google SPDY)
10. 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/
11. 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/
12. 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/
13. SEO -> WPO
• Search Engine Optimization ist ein
Thema von gestern Steve Souders
• Performance beeinflusst Google Ranking
seit April 2010
14. „Das Internet ist nicht
schneller geworden“
http://docs.google.com/a/chromium.org/viewer?a=v&pid=sites&srcid=Y2hyb21pdW0ub3JnfGRldnxneDoxMzcyOWI1N2I4YzI3NzE2
15. PERFORMANCE OPTIMIEREN
Messen: z.B. JMeter
Bottlenecks finden: Profiling des Backends
Code optimieren / mehr Server-Hardware / bessere Server-Anbindung
16. Aber: Was wollen wir messen?
Wahrgenommene Wartezeit!
= Inhalt ist für den Nutzer sichtbar
= Nutzer denkt, er kann interagieren
17. 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
18. Performance messen #2
• verschiedene Clients
• verschiedene Locations
• verschiedenen Anbindungen
• Performance kontinuierlich messen
29. Intelligentes Browser-Caching
Use HTTPs potential!
• Achtung, ETag!
GET File
Server Client
File
GET File, if modified
Server Client
304 not modified
File
38. 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/
48. Order of loading ressources
<script> blockiert weitere Downloads
<script> blockiert Rendering
-> Reihenfolge beachten
-> defer/async-Attribute bzw. Loading-Tools nutzen
49. Order of loading ressources
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
58. Strangeloop Site Optimizer
Fokus auf der vom Nutzer wahrgenommenen Ladezeit.
Analysiert Nutzerverhalten und lädt Ressourcen bereits vor.
http://www.strangeloopnetworks.com/
60. Sehr gute Tools verfügbar
• Yahoo YSlow
• Google PageSpeed
• Dynatrace AJAX Edition
• WebPageTest.com
61. 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
62. Auf dem Server
• On-the-fly
– Mod_deflate
– Mod_pagespeed
– WEBO Site SpeedUp (PHP)
63. Externe (kommerzielle) Services
• On-the-fly in der Cloud
– blaze.io
– strangeloopnetworks.com
– Google Page Speed Service
• Monitoring
– Gomez
64. Multiplexed streams
Request prioritization Server push & hint
HTTP header compression
Was Google hat, was wir nicht haben…
GOOGLE + CHROME use SPDY
An experimental protocol
for a faster web
~50% reduction in page load time
65.
66. Entlastet auch
Enorme die Server
Auswirkungen Basics sind einfach
Von Anfang an Best
Performance
Practices beachten
& ggf. weiter
optimieren
matters!
Direkte Verbesserung Kosten/Nutzen abwägen
für die Nutzer
don‘t fiddle – analyse first
Mobiles Internet
RIA
67. 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/
68. Developer Convention 2011
Web Performance
Optimization
Jakob Schröter
http://www.jakob-schroeter.de/
http://www.seitenbau.com/