SlideShare ist ein Scribd-Unternehmen logo
1 von 77
Frank Kleine, Nico Steiner 1&1 Internet AG Frontend-Performance mit PHP
Vorstellung ,[object Object],[object Object],[object Object],[object Object]
Vorstellung ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Vorstellung ,[object Object],[object Object],[object Object],[object Object],[object Object],2007 2009 Steve Souders YSlow Firebug Extension
Frontend-Performance mit PHP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
HTTP Protokoll Client  Server Request Response URL Header Header Body SC GET /xml/shop/home.html Host: kunden.1und1.de User-Agent: Mozilla/5.0 (Windows; U; […]) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729) Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 […] HTTP/1.1 200 OK Date: Thu, 27 May 2010 07:40:50 GMT Server: Apache […] Content-Type: text/html;charset=UTF-8 http://livehttpheaders.mozdev.org/ Liv e HTTP Headers
Die Testumgebung
Die Testumgebung http://www.webpagetest.org /
Die Testumgebung http://www.webpagetest.org /
Die Testumgebung http://www.webpagetest.org /
Ohne Optimierung 695 KB 47 5,9 s 7,5 s Size Requests Start Render Load Time
Ohne Optimierung
Ohne Optimierung HTML
Ohne Optimierung HTML 12%
Ohne Optimierung CSS (9)
Ohne Optimierung JS (7)
Ohne Optimierung Grafiken (30)
Weniger HTTP-Request
Weniger HTTP-Request ,[object Object],[object Object],[object Object],[object Object]
Weniger HTTP-Request ,[object Object],Bandbreite des Endanwenders Internet Service Provider Nähe zu Peering-Punkten Distanz + + +
Kombiniertes CSS / JavaScript ,[object Object],[object Object],[object Object],[object Object],Live-Umgebung Build-Prozess
JS/CSS-Dateien kombinieren ,[object Object],[object Object],[object Object]
JS/CSS-Dateien kombinieren ,[object Object],[object Object],[object Object],[object Object],[object Object]
JS/CSS-Dateien kombinieren ,[object Object],[object Object],[object Object],[object Object],[object Object]
JS/CSS-Dateien kombinieren, Versuch 2 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JS/CSS-Dateien kombinieren, Versuch 2 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Kombiniertes CSS / JavaScript CSS (1)
Kombiniertes CSS / JavaScript JS (1)
Kombiniertes CSS / JavaScript 631 KB 33   (-14) 3,7 s  (-37%) 5,3 s  (-30%) 695 KB 47 5,9 s 7,5 s Size Requests Start Render Load Time
Weniger HTTP-Requests http://dsl.1und1.de
Weniger HTTP-Requests „ Sliding Doors of CSS“ by Douglas Bowman (2003) http://www.alistapart.com/articles/slidingdoors / <a class=„btn-yellow-medium“> <span>prüfen</span> </a> <button class=„btn-yellow-medium“> <span>auswählen</span> </button> Probleme mit IE6:   http://www.peterbe.com/plog/button-tag-in-IE 36 Requests!
Weniger HTTP-Requests buttons.png 24,7 KB part-x.png 36,9 KB +49%
Weniger HTTP-Requests http://login.1und1.de
Inline Images ,[object Object],[object Object],[object Object],Nicht im IE7
Inline Images ,[object Object],[object Object],[object Object],[object Object],[object Object],Nicht im IE7
Komprimierung
Komprimierung ,[object Object],[object Object],[object Object],GET /xml/shop/home.html Host: kunden.1und1.de […] Accept-Encoding: gzip,deflate […] HTTP/1.1 200 OK […] Vary: Accept-Encoding Content-Encoding: gzip Keep-Alive: timeout=15, max=97 Connection: Keep-Alive Transfer-Encoding: chunked http://livehttpheaders.mozdev.org/ Liv e HTTP Headers
Komprimierung ,[object Object],[object Object],[object Object],[object Object]
Komprimierung ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Komprimiertes CSS / JavaScript CSS
Komprimiertes CSS / JavaScript JS
Komprimiertes CSS / JavaScript 254 KB  (-63%) 33  (-14) 2,1 s  (-64%) 3,2 s  (-57%) 631 KB 33   (-14) 3,7 s  (-37%) 5,3 s  (-30%) 695 KB 47 5,9 s 7,5 s Size Requests Start Render Load Time
Stylesheets an den Anfang
Stylesheets an den Anfang ,[object Object],[object Object],[object Object]
Stylesheets an den Anfang ,[object Object],Start Render CSS
Stylesheets an den Anfang CSS im Head Start Rendering 4,7 s CSS im Content Start Rendering 6,0 s
Stylesheets an den Anfang http://www.webpagetest.org/video/view.php?id=100528_ee3c12b0eae75703456caa0dd5ccf098de3a5a48
JavaScript an das Ende
JavaScript im Head des Dokuments Start Render
JavaScript am Ende des Dokuments Start Render
JavaScript am Ende des Dokuments 254 KB  (-63%) 33  (-14) 1,1 s  (-81%) 2,4 s  (-68%) 254 KB  (-63%) 33  (-14) 2,1 s  (-64%) 3,2 s  (-57%) 631 KB  (-9%) 33   (-14) 3,7 s  (-37%) 5,3 s  (-30%) 695 KB 47 5,9 s 7,5 s Size Requests Start Render Load Time
Expires-Header
Ohne Expires-Header
Mit Expires-Header ,[object Object]
Mit Expires-Header Facebook: Hash-Tags Amazon: Versionierung C ontent  D elivery  N etwork
Resultat Mit Optimierung Start Rendering 2,5 s Ohne Optimierung Start Rendering 9,0 s
Resultat http://www.webpagetest.org/video/view.php?id=100528_91ecef9fae78adb38f3a100d41ad97e05809d18a
Resultat ,[object Object],[object Object],[object Object],[object Object],http://www.flickr.com/photos/ppz/47473793/
Nutzen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Quelle: Fronteers &quot;fast by default&quot; 2009
Nutzen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Quelle: Fronteers &quot;fast by default&quot; 2009
Nutzen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Quelle: Fronteers &quot;fast by default&quot; 2009
Entwicklertools
Entwicklertools ,[object Object],[object Object],[object Object]
Entwicklertools ,[object Object],[object Object],[object Object]
Entwicklertools ,[object Object],[object Object]
Entwicklertools ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Entwicklertools ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Entwicklertools ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Entwicklertools ,[object Object]
Entwicklertools ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Entwicklertools ,[object Object],[object Object],[object Object],https://addons.mozilla.org/en-US/firefox/addon/3829/ GET /en-US/firefox/addon/3829/ HTTP/1.1 Host: addons.mozilla.org User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.3)  Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Connection: keep-alive Referer: http://www.google.com/search?q=firefox+extensions Cookie: dloadday=212.227.66.8.1248158487731077;  Cache-Control: max-age=0 HTTP/1.1 200 OK
Entwicklertools ,[object Object],[object Object],[object Object]
Anmerkungen? Fragen?
Weiterführende Informationen
Weiterführende Informationen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Weiterführende Informationen ,[object Object],[object Object],[object Object],[object Object]
Vielen Dank! http://icons.mysitemyway.com Frank Kleine http://frankkleine.de/ http://www.stubbles.org/ http://twitter.com/mikey179 Nico Steiner http://www.nicosteiner.de/ http://www.slideshare.net/n.steiner http://twitter.com/sensationalseo

Weitere ähnliche Inhalte

Andere mochten auch

Web2.0 Für Jugend- Sozialarbeiter
Web2.0 Für Jugend- SozialarbeiterWeb2.0 Für Jugend- Sozialarbeiter
Web2.0 Für Jugend- SozialarbeiterKlisch Andreas
 
Ich bin "ON" - Aber auch sicher?
Ich bin "ON" - Aber auch sicher?Ich bin "ON" - Aber auch sicher?
Ich bin "ON" - Aber auch sicher?Klisch Andreas
 
Web 2.0 fuer Musiker & Bands
Web 2.0 fuer Musiker & BandsWeb 2.0 fuer Musiker & Bands
Web 2.0 fuer Musiker & BandsKlisch Andreas
 

Andere mochten auch (7)

Web2.0 Für Jugend- Sozialarbeiter
Web2.0 Für Jugend- SozialarbeiterWeb2.0 Für Jugend- Sozialarbeiter
Web2.0 Für Jugend- Sozialarbeiter
 
Eltern Uni 08
Eltern Uni 08Eltern Uni 08
Eltern Uni 08
 
Googleplus
GoogleplusGoogleplus
Googleplus
 
Ebber Cc Republica
Ebber Cc RepublicaEbber Cc Republica
Ebber Cc Republica
 
Medienqualifikation
MedienqualifikationMedienqualifikation
Medienqualifikation
 
Ich bin "ON" - Aber auch sicher?
Ich bin "ON" - Aber auch sicher?Ich bin "ON" - Aber auch sicher?
Ich bin "ON" - Aber auch sicher?
 
Web 2.0 fuer Musiker & Bands
Web 2.0 fuer Musiker & BandsWeb 2.0 fuer Musiker & Bands
Web 2.0 fuer Musiker & Bands
 

Ähnlich wie Frontend-Performance mit PHP

PageSpeed Extreme für das große Speed Update 2021
PageSpeed Extreme für das große Speed Update 2021PageSpeed Extreme für das große Speed Update 2021
PageSpeed Extreme für das große Speed Update 2021SEARCH ONE
 
Site Speed EXTREME - SEOkomm 2014
Site Speed EXTREME - SEOkomm 2014Site Speed EXTREME - SEOkomm 2014
Site Speed EXTREME - SEOkomm 2014Bastian Grimm
 
Web Performance Optimization - Web Tech Conference 2011 Talk
Web Performance Optimization - Web Tech Conference 2011 TalkWeb Performance Optimization - Web Tech Conference 2011 Talk
Web Performance Optimization - Web Tech Conference 2011 TalkFabian Lange
 
Mehr Pagespeed geht nicht - SEOkomm 2015
Mehr Pagespeed geht nicht - SEOkomm 2015Mehr Pagespeed geht nicht - SEOkomm 2015
Mehr Pagespeed geht nicht - SEOkomm 2015Bastian Grimm
 
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)André Krämer
 
Performance. Webmontag. Frankfurt.
Performance. Webmontag. Frankfurt.Performance. Webmontag. Frankfurt.
Performance. Webmontag. Frankfurt.Martin Kliehm
 
Frontend-Architektur der 1&1 Bestellsysteme
Frontend-Architektur der 1&1 BestellsystemeFrontend-Architektur der 1&1 Bestellsysteme
Frontend-Architektur der 1&1 BestellsystemeNico Steiner
 
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-AppsAber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-AppsGregor Biswanger
 
Einführung in die Java-Webentwicklung - Part I - Einführung, HTTP (in german)
Einführung in die Java-Webentwicklung - Part I - Einführung, HTTP (in german)Einführung in die Java-Webentwicklung - Part I - Einführung, HTTP (in german)
Einführung in die Java-Webentwicklung - Part I - Einführung, HTTP (in german)kaftanenko
 
Web Performance Optimization - JAX 2011 Talk
Web Performance Optimization - JAX 2011 TalkWeb Performance Optimization - JAX 2011 Talk
Web Performance Optimization - JAX 2011 TalkFabian Lange
 
HTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenHTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenMayflower GmbH
 
Dnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondDnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondUlrich Krause
 
20120207 prs ib_js_libraries_v02
20120207 prs ib_js_libraries_v0220120207 prs ib_js_libraries_v02
20120207 prs ib_js_libraries_v02Chris Palatinus
 
Effiziente Fehlersuche In Web 2.0 Anwendungen - Graz Edition
Effiziente Fehlersuche In Web 2.0 Anwendungen - Graz EditionEffiziente Fehlersuche In Web 2.0 Anwendungen - Graz Edition
Effiziente Fehlersuche In Web 2.0 Anwendungen - Graz EditionMartin Leyrer
 
Web Performance Optimierung (WPO)
Web Performance Optimierung (WPO)Web Performance Optimierung (WPO)
Web Performance Optimierung (WPO)Martin Kliehm
 
Effiziente Fehlersuche in Web 2.0 Anwendungen
Effiziente Fehlersuche in Web 2.0 AnwendungenEffiziente Fehlersuche in Web 2.0 Anwendungen
Effiziente Fehlersuche in Web 2.0 AnwendungenMartin Leyrer
 
Frontend Performance @ Hochschule der Medien Stuttgart
Frontend Performance @ Hochschule der Medien StuttgartFrontend Performance @ Hochschule der Medien Stuttgart
Frontend Performance @ Hochschule der Medien StuttgartJakob
 
Confluence & JIRA Community Day - Anforderungsmanagement auf Basis von Conflu...
Confluence & JIRA Community Day - Anforderungsmanagement auf Basis von Conflu...Confluence & JIRA Community Day - Anforderungsmanagement auf Basis von Conflu...
Confluence & JIRA Community Day - Anforderungsmanagement auf Basis von Conflu...Communardo GmbH
 

Ähnlich wie Frontend-Performance mit PHP (20)

PageSpeed Extreme für das große Speed Update 2021
PageSpeed Extreme für das große Speed Update 2021PageSpeed Extreme für das große Speed Update 2021
PageSpeed Extreme für das große Speed Update 2021
 
Site Speed EXTREME - SEOkomm 2014
Site Speed EXTREME - SEOkomm 2014Site Speed EXTREME - SEOkomm 2014
Site Speed EXTREME - SEOkomm 2014
 
Web Performance Optimization - Web Tech Conference 2011 Talk
Web Performance Optimization - Web Tech Conference 2011 TalkWeb Performance Optimization - Web Tech Conference 2011 Talk
Web Performance Optimization - Web Tech Conference 2011 Talk
 
Mehr Pagespeed geht nicht - SEOkomm 2015
Mehr Pagespeed geht nicht - SEOkomm 2015Mehr Pagespeed geht nicht - SEOkomm 2015
Mehr Pagespeed geht nicht - SEOkomm 2015
 
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
 
Performance. Webmontag. Frankfurt.
Performance. Webmontag. Frankfurt.Performance. Webmontag. Frankfurt.
Performance. Webmontag. Frankfurt.
 
Ec2009 Templates
Ec2009 TemplatesEc2009 Templates
Ec2009 Templates
 
Frontend-Architektur der 1&1 Bestellsysteme
Frontend-Architektur der 1&1 BestellsystemeFrontend-Architektur der 1&1 Bestellsysteme
Frontend-Architektur der 1&1 Bestellsysteme
 
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-AppsAber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
 
Einführung in die Java-Webentwicklung - Part I - Einführung, HTTP (in german)
Einführung in die Java-Webentwicklung - Part I - Einführung, HTTP (in german)Einführung in die Java-Webentwicklung - Part I - Einführung, HTTP (in german)
Einführung in die Java-Webentwicklung - Part I - Einführung, HTTP (in german)
 
Web Performance Optimization - JAX 2011 Talk
Web Performance Optimization - JAX 2011 TalkWeb Performance Optimization - JAX 2011 Talk
Web Performance Optimization - JAX 2011 Talk
 
HTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenHTML5 und node.js Grundlagen
HTML5 und node.js Grundlagen
 
Dnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondDnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyond
 
20120207 prs ib_js_libraries_v02
20120207 prs ib_js_libraries_v0220120207 prs ib_js_libraries_v02
20120207 prs ib_js_libraries_v02
 
Effiziente Fehlersuche In Web 2.0 Anwendungen - Graz Edition
Effiziente Fehlersuche In Web 2.0 Anwendungen - Graz EditionEffiziente Fehlersuche In Web 2.0 Anwendungen - Graz Edition
Effiziente Fehlersuche In Web 2.0 Anwendungen - Graz Edition
 
Web Performance Optimierung (WPO)
Web Performance Optimierung (WPO)Web Performance Optimierung (WPO)
Web Performance Optimierung (WPO)
 
Effiziente Fehlersuche in Web 2.0 Anwendungen
Effiziente Fehlersuche in Web 2.0 AnwendungenEffiziente Fehlersuche in Web 2.0 Anwendungen
Effiziente Fehlersuche in Web 2.0 Anwendungen
 
Frontend Performance @ Hochschule der Medien Stuttgart
Frontend Performance @ Hochschule der Medien StuttgartFrontend Performance @ Hochschule der Medien Stuttgart
Frontend Performance @ Hochschule der Medien Stuttgart
 
Confluence & JIRA Community Day - Anforderungsmanagement auf Basis von Conflu...
Confluence & JIRA Community Day - Anforderungsmanagement auf Basis von Conflu...Confluence & JIRA Community Day - Anforderungsmanagement auf Basis von Conflu...
Confluence & JIRA Community Day - Anforderungsmanagement auf Basis von Conflu...
 
Html5 einführung
Html5 einführungHtml5 einführung
Html5 einführung
 

Frontend-Performance mit PHP

Hinweis der Redaktion

  1. Frank: Willkommen
  2. Frank: kurze Vorstellung Nico: kurze Vorstellung
  3. Frank, danach Wechsel zu Nico
  4. Nächste Folie: &amp;quot;Was wollen wir in unserem Vortrag vorstellen?&amp;quot;
  5. &amp;quot;Wenn ihr Fragen habt…&amp;quot;
  6. Bestandskundenshop AJAX-lastig Feedback über Lightboxen
  7. + Enter Test URL + Warten auf Testgenerierung
  8. Start des Rendering
  9. Aus UK / Kleinste DSL-Geschwindigkeit
  10. Nächste Folie: HTML
  11. Nächste Folie: Goldene Regel
  12. 12%: DNS-Lookup + Initialer Verbindungsaufbau + Generieren des Dokuments + Download Anmerkung Frank: PHP-Optimierungen im Millisekundenbereich, auch zusätzliche Hardware hilft hier nicht Typisches Feedback von Kollegen aus den USA: &amp;quot;Unsere Seiten laden zu langsam.&amp;quot; -&gt; Chef: Macht&apos;s doppelt so schnell!
  13. Komponenten aus realen 1&amp;1 Anwendungen Wie schafft man das in PHP-Anwendungen? -&gt; Frank
  14. Nächste Folien: Wie ist das Ergebnis?
  15. Nächste Folien: Wie ist das Ergebnis?
  16. Erster Erfolg, aber das geht noch mehr. &gt; Nico
  17. Beispiel DSL-Bestellprozess Buttons in unterschiedlichen Farben, Zuständen, Größen
  18. Inline-Images IE7! Oder mit PHP… -&gt; Frank
  19. Oder mit PHP… -&gt; Frank Wir können aber noch mehr optimieren -&gt; Komprimierung ab nächster Folie
  20. Frank: Content Negotiation erklären
  21. Wechsel zu Nico mit Ergebnissen
  22. Gestrichelte Linie
  23. Gestrichelte Linie Seite im Vergleich zu vorher
  24. Da sind wir schon bei 50% weniger Ladezeit! Nächste Folie: Weitere Optimierung im Frontend
  25. Um rauszubekommen, wie viel schneller -&gt; Anderes Feature von WebPagetest Zeitlicher Verlauf Oben nachher / Unten vorher (Laser-Pointer) Nur Stylesheet-Optimierung
  26. Abweichungen durch Videoaufzeichnung von US-Server Nächste Folie: Auch JavaScript spielt eine Rolle
  27. 2/3 schneller! 2/3 der Datengröße eingespart! HTML unkomprimiert Sprites waren schon in der ursprünglichen Version (36 Requests!)
  28. Wie sieht es mit der Optimierung an dem 2. Request aus?
  29. Grafiken ohne Expires-Header Sind bereits im Cache, trotzdem Geschwätz zwischen Client und Server (1,4 Sekunden!)
  30. Am besten beide Methoden
  31. Hash -&gt; kein Bezug zu urspünglicher Adresse Version: Aufwendig zu implementieren Cookie-freie Domain Verteilung über verschiedene Subdomains
  32. Resultat Oben nachher / Unten vorher
  33. Jede Menge Geld… Damit sind wir mit den wichtigsten Regeln durch. Webpagetest.org und minify sind nicht die einzigen Tools… -&gt; Frank
  34. Im Frontend -&gt; Nico