SlideShare uma empresa Scribd logo
1 de 40
PERFORMANC E!?

             Einführung in
     Analyse und Optimierung auf
PHP & Mysql basierten Webanwendungen
Fe lix Pe te rs

 ●
     Baujahr 1988
 ●
     Bachelor Studium
      ●
           Hochschule Esslingen
      ●
           Hochschule Reutlingen
 ●
     Freelancer – wichteldesign.de
 ●
     Entwickler bei autonetzer.de


18.02.13                           Performance!?   2
Das kommt jetzt
 ●
      Was ist Performance
 ●
      Analyse
       ●
           Methoden / Tools
       ●
           Metriken
       ●
           Vorgehensweise
 ●
      Praxis / Troubleshooting

18.02.13                      Performance!?   3
Das kommt nicht
 ●
      Load-Balancing
 ●
      Datenbank Replikation
 ●
      Webserver
 ●
      Linux



18.02.13                Performance!?   4
Performance
      Der Begriff Performance beschreibt:
      die Güte einer Anwendung ergibt sich aus den
      Erwartungen an diese in Bezug auf:
       ●
           die benötigten Ressourcen
       ●
           und Zeit
      unter gegebenen Bedingungen.

18.02.13                     Performance!?           5
Performance
 ●
     Ressourcen sind nicht unendlich und kosten Geld
      ●
           Unperformante Anwendungen kosten Geld


 ●
     Zeit ergibt sich aus der Geschwindigkeit in der die
     Anwendung Aufgaben erfüllen kann.
      ●
           Ist vom Nutzer direkt spürbar
      ●
           Hat direkten Einfluss auf das Nutzererlebnis


18.02.13                           Performance!?           6
Qualität durch Performance
 ●
      Nutzer sind durch Facebook & Co verwöhnt
       ●
           Vergleichen damit die Anwendungen
           => Bessere Usability durch schnellere Anwendung


 ●
      Rankingfaktor für Google
       ●
           Bessere Position führt zu mehr Besuchern


18.02.13                      Performance!?                  7
Ausgangslage

                                                          Die Seite ist voll langsam!




      http://techbeat.com/wp-content/uploads/2012/10/angrycomputerguy.gif




18.02.13                                                           Performance!?        8
Keep Cool!




18.02.13      Performance!?   9
Kritische Use-Cases finden
 ●
     Die Anwendung aufsplitten und getrennt betrachten!


 ●
     Suchanfrage
 ●
     Verarbeitung von Formulardaten
 ●
     Checkout-Prozess
 ●
     Uploads
 ●
     Datenmanipulation


18.02.13                      Performance!?               10
Akzeptanzkriterien
 ●
      Wodurch entsteht das Gefühl langsam?
 ●
      Was erwartet der Nutzer
 ●
      Wie wird dem Nutzer Feedback gegeben?


 ●
      Immer abhängig vom Use-Case!


18.02.13                 Performance!?        11
Akzeptanzkriterien
formulieren
 ●
     Ich will, dass die Aufgabe x bei einen gegebenen
     Datenmenge y in der Zeit z erledigt ist.


 ●
     Im Beispiel: Eine Suche nach Fahrzeugen in
     Berlin (162 Stk.) soll unterhalb einer Sekunde
     Ergebnisse anzeigen.



18.02.13                   Performance!?                12
Der Mythos Performance
 ●
     „Mit einem besseren Server wäre das alle kein
     Problem“
 ●
     „echo ist viel schneller als print“
 ●
     „Mit vielen Joins kann das ja nix werden auf der
     Datenbank“


     Google Suche „performance tips php“ → Ungefähr 166.000.000 Ergebnisse (0,31 Sekunden)




18.02.13                                       Performance!?                                 13
Nicht raten → Messen!
           Problem → messen → analysieren (→ optimieren)




18.02.13                     Performance!?                 14
Vorge he ns we is e
 ●
      Einzelnen Use-Case von außen nach innen
       ●
           Vom Groben ins feine
       ●
           Ursachen einkreisen




18.02.13                     Performance!?      15
De r Blic k aufs Ganze
 ●
      Wie schnell reagiert die Anwendung?
 ●
      Wie viel kann die Anwendung verarbeiten?
 ●
      Wie verhält sich die Anwendung unter
      verschiedener Last?


 ●
      Tools: Apache Bench, Siege, Jmeter uvm.


18.02.13                  Performance!?          16
De r Blic k aufs Ganze




18.02.13     Performance!?   17
Re s pons e Time
 ●
     Die Zeit zwischen dem absetzten eines Request bis
     zum eintreffen der Response des Servers


 ●
     Beinhaltet den Download (gesamten Response)
     aber nicht und Rendern / lokales Verarbeiten der
     Response bzw. dessen Inhalt!



18.02.13                   Performance!?                 18
Throughput
 ●
      Ergibt sich aus einer Vielzahl von Messungen
 ●
      Definiert die Anzahl von:
      Verarbeiteten Anfragen / Zeiteinheit
 ●
      Bsp: 10 Anfragen / Sekunde


 ●
      Steht im Verhältnis zur Response Time

18.02.13                  Performance!?              19
Re s pons e Time vs .
Troughput
 ●
      Der Troughput zeigt die Last die Server
      verarbeiten muss
 ●
      Die Response Time zeigt wie schnell er das
      macht.




18.02.13                  Performance!?            20
Bac ke nd – PHP Profiling
 ●
     Kompleten Programmablauf aufzeichnen
 ●
     Zeiten messen, CPU Auslastung, RAM Belegung
 ●
     Tools:
      ●
           Xdebug
      ●    XHProf
      ●
           (Framework) Eigene Zeitmessungen



18.02.13                        Performance!?      21
PHP Profiling - Messwerte
 ●
     Walltime, CPU-Time, Memory Usage, Call Count,
     Call-Graph




18.02.13                 Performance!?               22
Daten erhalten
 ●
      Datenbanken (und Webservice-Aufrufe)




18.02.13                Performance!?        23
Datenbank - Messwerte
 ●
      Zeit um Verbindung aufzubauen
       ●
           Meistens zu vernachlässigen
 ●
      Zeit um einen Query auszuführen
 ●
      Verbrauchter RAM
 ●
      Tools: Mysql (Explain, Log, usw.), (Framework /
      ORM) eigene Messungen

18.02.13                      Performance!?             24
Webservice - Messwerte
 ●
      Zeit um Verbindung aufzubauen
 ●
      Zeit um Daten zu empfangen
 ●
      Meistens nicht zu beeinflussen
       ●
           Wenn eigener Webservice → Gehe zurück auf Los




18.02.13                     Performance!?                 25
Fast geschafft!

           Vorbereitungen zum testen




18.02.13             Performance!?     26
Test-Client und Sandbox




18.02.13    Performance!?   27
Sandbox nutzen
 ●
      Aussagekräftige Test können nur unter immer
      gleichen Bedingungen gemacht werden!
 ●
      Das Host-System sauber halten
 ●
      Virtuelles Netzwerk simulierbar


 ●
      Tools: Virtual Box, VmWare, VAGRANT

18.02.13                   Performance!?            28
Tests und Last erzeugen
 ●
     Test automatisieren!
 ●
     Immer mit selben Daten testen
 ●
     Auch hier: Je nach Kontext testen!
       ●
           Lasttest, Stresstest, Single Run


 ●
     Tools: Jmeter erlaubt auch komplexe Tests

18.02.13                         Performance!?   29
Ein paar Worte zum
Testdesign
 ●
     Falsches Testdesign führt zu falschen Aussagen


 ●
     Bsp: Die maximale Lastgrenze einer Anwendung
     kann nur durch detaillierte Simulation von Nutzern
     annähernd korrekt gemessen werden.




18.02.13                   Performance!?                  30
Bas e line e rs te lle n
 ●
      Dient als Ausgangslage
 ●
      Bei Frameworks, das Framework messen




18.02.13                Performance!?        31
Die fe rtige Umge bung




18.02.13     Performance!?   32
Ge nug The orie !

           Wir werden dann mal praktisch




18.02.13               Performance!?       33
Und je tzt? Optimie re n? !




                http://www.theillustratedprofessor.com/wp-content/uploads/2012/02/It-Depends-1.jpg




18.02.13                                      Performance!?                                          34
Es gibt ke in HowTo

 ●
      Jedes Ergebnis muss einzeln im Kontext
      betrachtet werden
 ●
      Optimierungen müssen zusammenspielen
 ●
      Alle gemachten Optimierungen testen
       ●
           Im Einzelnen und und im Zusammenspiel


18.02.13                     Performance!?         35
Je besser man das Problem versteht, umso
      besser kann man es beheben!




18.02.13         Performance!?         36
Abe r e in paar Re ge ln
 ●
      So geht es nicht:
       ●
           Teure Funktionen in einer Schleife
       ●
           Daten doppelt erzeugen
       ●
           Statische Daten bei jedem Aufruf erzeugen
       ●
           Nicht verwendete Daten erzeugen
       ●
           Uvm.


18.02.13                       Performance!?           37
Ein paar Regeln
 ●
     So geht’s:
       ●
           Die Response so früh wie möglich erzeugen
       ●
           Nur benötigte Daten holen
       ●
           Nicht zeitkritische Aufgaben verschieben
       ●
           Statische Daten nur einmal vom Webservice holen
           (Geocoding z.B)
       ●
           Caching!


18.02.13                         Performance!?               38
Datenbanken verstehen
 ●
      Storage-Engines entsprechend anwenden
 ●
      Querys analysieren und verstehen
 ●
      Query-Cache nutzen
       ●
           NOW() umgeht den Query-Cache
 ●
      Ggf. Daten denormalisieren
       ●
           Birgt aber gefahren


18.02.13                         Performance!?   39
Fragen?

                   Follow Me:
           @el_wichtel / @wichteldesign

                  Autonetzer?
            Gutscheincode: iknowfelix




18.02.13              Performance!?       40

Mais conteúdo relacionado

Destaque

Sommerferien mit Deutsch - Bücher und Musik
Sommerferien mit Deutsch - Bücher und MusikSommerferien mit Deutsch - Bücher und Musik
Sommerferien mit Deutsch - Bücher und Musik
AnnaGurova
 
Empresa de servicios
Empresa de servicios Empresa de servicios
Empresa de servicios
mateoteo21
 
Emprendimiento 4
Emprendimiento 4Emprendimiento 4
Emprendimiento 4
julianariel
 

Destaque (20)

Gbgtrhtrhhrthbbg
GbgtrhtrhhrthbbgGbgtrhtrhhrthbbg
Gbgtrhtrhhrthbbg
 
Billeterasweb
BilleteraswebBilleterasweb
Billeterasweb
 
Convenio ASOGOPAL GPL Junio 2013
Convenio ASOGOPAL GPL Junio 2013Convenio ASOGOPAL GPL Junio 2013
Convenio ASOGOPAL GPL Junio 2013
 
Oso pardo
Oso pardoOso pardo
Oso pardo
 
Liderazgo
LiderazgoLiderazgo
Liderazgo
 
Sommerferien mit Deutsch - Bücher und Musik
Sommerferien mit Deutsch - Bücher und MusikSommerferien mit Deutsch - Bücher und Musik
Sommerferien mit Deutsch - Bücher und Musik
 
Unidad ii
Unidad iiUnidad ii
Unidad ii
 
Tahun 3 (2014)
Tahun 3 (2014)Tahun 3 (2014)
Tahun 3 (2014)
 
Firmen-Präsentation dmr solutions gmbh
Firmen-Präsentation dmr solutions gmbhFirmen-Präsentation dmr solutions gmbh
Firmen-Präsentation dmr solutions gmbh
 
Presentacion zona net
Presentacion zona netPresentacion zona net
Presentacion zona net
 
REDES SOCIALES
REDES SOCIALESREDES SOCIALES
REDES SOCIALES
 
Empresa de servicios
Empresa de servicios Empresa de servicios
Empresa de servicios
 
Gesuchtinhamburg
GesuchtinhamburgGesuchtinhamburg
Gesuchtinhamburg
 
Tahun 1 (2014)
Tahun 1 (2014)Tahun 1 (2014)
Tahun 1 (2014)
 
In zehn Schritten zum eigenen Webmontag #wemoda
In zehn Schritten zum eigenen Webmontag #wemodaIn zehn Schritten zum eigenen Webmontag #wemoda
In zehn Schritten zum eigenen Webmontag #wemoda
 
Tahun 3 (2014)
Tahun 3 (2014)Tahun 3 (2014)
Tahun 3 (2014)
 
Sql server
Sql serverSql server
Sql server
 
CÁNCER ORAL
CÁNCER ORALCÁNCER ORAL
CÁNCER ORAL
 
Chikikoala77
Chikikoala77Chikikoala77
Chikikoala77
 
Emprendimiento 4
Emprendimiento 4Emprendimiento 4
Emprendimiento 4
 

Semelhante a Performance?!

DOAG 2011: MySQL Performance Tuning
DOAG 2011: MySQL Performance TuningDOAG 2011: MySQL Performance Tuning
DOAG 2011: MySQL Performance Tuning
FromDual GmbH
 
FROSCON 2011: MySQL Performance Tuning
FROSCON 2011: MySQL Performance TuningFROSCON 2011: MySQL Performance Tuning
FROSCON 2011: MySQL Performance Tuning
FromDual GmbH
 
Das funktionierte doch schon einmal! - JUnit Testing in XPages
Das funktionierte doch schon einmal! - JUnit Testing in XPagesDas funktionierte doch schon einmal! - JUnit Testing in XPages
Das funktionierte doch schon einmal! - JUnit Testing in XPages
Christian Güdemann
 
Qualitätssicherung in Webprojekten
Qualitätssicherung in WebprojektenQualitätssicherung in Webprojekten
Qualitätssicherung in Webprojekten
Sebastian Springer
 
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
Sebastian Springer
 
Tipps zur Performanceoptimierung für Liferay Portal
Tipps zur  Performanceoptimierung für Liferay PortalTipps zur  Performanceoptimierung für Liferay Portal
Tipps zur Performanceoptimierung für Liferay Portal
Stefan Hilpp
 

Semelhante a Performance?! (20)

Die Macht der Zahlen
Die Macht der ZahlenDie Macht der Zahlen
Die Macht der Zahlen
 
DOAG 2011: MySQL Performance Tuning
DOAG 2011: MySQL Performance TuningDOAG 2011: MySQL Performance Tuning
DOAG 2011: MySQL Performance Tuning
 
FROSCON 2011: MySQL Performance Tuning
FROSCON 2011: MySQL Performance TuningFROSCON 2011: MySQL Performance Tuning
FROSCON 2011: MySQL Performance Tuning
 
Progressive Web Apps mit Angular
Progressive Web Apps mit AngularProgressive Web Apps mit Angular
Progressive Web Apps mit Angular
 
2022-12_RPA-ChapterEvent_WhatsNew
2022-12_RPA-ChapterEvent_WhatsNew2022-12_RPA-ChapterEvent_WhatsNew
2022-12_RPA-ChapterEvent_WhatsNew
 
Qualitätsmanagement für Web- und PHP Applikationen
Qualitätsmanagement für Web- und PHP ApplikationenQualitätsmanagement für Web- und PHP Applikationen
Qualitätsmanagement für Web- und PHP Applikationen
 
Das funktionierte doch schon einmal! - JUnit Testing in XPages
Das funktionierte doch schon einmal! - JUnit Testing in XPagesDas funktionierte doch schon einmal! - JUnit Testing in XPages
Das funktionierte doch schon einmal! - JUnit Testing in XPages
 
Qualitätssicherung in Webprojekten
Qualitätssicherung in WebprojektenQualitätssicherung in Webprojekten
Qualitätssicherung in Webprojekten
 
Responsive Mit Irhem Webseiten (German Edition)
Responsive Mit Irhem Webseiten (German Edition)Responsive Mit Irhem Webseiten (German Edition)
Responsive Mit Irhem Webseiten (German Edition)
 
BED-Con - Tools für den täglichen Kampf als Entwickler
BED-Con - Tools für den täglichen Kampf als EntwicklerBED-Con - Tools für den täglichen Kampf als Entwickler
BED-Con - Tools für den täglichen Kampf als Entwickler
 
Globetrotter @ E-Commerce Hacktable HH
Globetrotter @ E-Commerce Hacktable HHGlobetrotter @ E-Commerce Hacktable HH
Globetrotter @ E-Commerce Hacktable HH
 
Performance meetup wpm fuer fortgeschrittene
Performance meetup wpm fuer fortgeschrittenePerformance meetup wpm fuer fortgeschrittene
Performance meetup wpm fuer fortgeschrittene
 
High performance mit PHP
High performance mit PHPHigh performance mit PHP
High performance mit PHP
 
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
 
ConventionCamp Hannover
ConventionCamp HannoverConventionCamp Hannover
ConventionCamp Hannover
 
Build Automation for Mobile
Build Automation for MobileBuild Automation for Mobile
Build Automation for Mobile
 
Testing einer Angular App
Testing einer Angular AppTesting einer Angular App
Testing einer Angular App
 
Open source business apps
Open source business appsOpen source business apps
Open source business apps
 
Tipps zur Performanceoptimierung für Liferay Portal
Tipps zur  Performanceoptimierung für Liferay PortalTipps zur  Performanceoptimierung für Liferay Portal
Tipps zur Performanceoptimierung für Liferay Portal
 
Froscon 2012 DWH
Froscon 2012 DWHFroscon 2012 DWH
Froscon 2012 DWH
 

Performance?!

  • 1. PERFORMANC E!? Einführung in Analyse und Optimierung auf PHP & Mysql basierten Webanwendungen
  • 2. Fe lix Pe te rs ● Baujahr 1988 ● Bachelor Studium ● Hochschule Esslingen ● Hochschule Reutlingen ● Freelancer – wichteldesign.de ● Entwickler bei autonetzer.de 18.02.13 Performance!? 2
  • 3. Das kommt jetzt ● Was ist Performance ● Analyse ● Methoden / Tools ● Metriken ● Vorgehensweise ● Praxis / Troubleshooting 18.02.13 Performance!? 3
  • 4. Das kommt nicht ● Load-Balancing ● Datenbank Replikation ● Webserver ● Linux 18.02.13 Performance!? 4
  • 5. Performance Der Begriff Performance beschreibt: die Güte einer Anwendung ergibt sich aus den Erwartungen an diese in Bezug auf: ● die benötigten Ressourcen ● und Zeit unter gegebenen Bedingungen. 18.02.13 Performance!? 5
  • 6. Performance ● Ressourcen sind nicht unendlich und kosten Geld ● Unperformante Anwendungen kosten Geld ● Zeit ergibt sich aus der Geschwindigkeit in der die Anwendung Aufgaben erfüllen kann. ● Ist vom Nutzer direkt spürbar ● Hat direkten Einfluss auf das Nutzererlebnis 18.02.13 Performance!? 6
  • 7. Qualität durch Performance ● Nutzer sind durch Facebook & Co verwöhnt ● Vergleichen damit die Anwendungen => Bessere Usability durch schnellere Anwendung ● Rankingfaktor für Google ● Bessere Position führt zu mehr Besuchern 18.02.13 Performance!? 7
  • 8. Ausgangslage Die Seite ist voll langsam! http://techbeat.com/wp-content/uploads/2012/10/angrycomputerguy.gif 18.02.13 Performance!? 8
  • 9. Keep Cool! 18.02.13 Performance!? 9
  • 10. Kritische Use-Cases finden ● Die Anwendung aufsplitten und getrennt betrachten! ● Suchanfrage ● Verarbeitung von Formulardaten ● Checkout-Prozess ● Uploads ● Datenmanipulation 18.02.13 Performance!? 10
  • 11. Akzeptanzkriterien ● Wodurch entsteht das Gefühl langsam? ● Was erwartet der Nutzer ● Wie wird dem Nutzer Feedback gegeben? ● Immer abhängig vom Use-Case! 18.02.13 Performance!? 11
  • 12. Akzeptanzkriterien formulieren ● Ich will, dass die Aufgabe x bei einen gegebenen Datenmenge y in der Zeit z erledigt ist. ● Im Beispiel: Eine Suche nach Fahrzeugen in Berlin (162 Stk.) soll unterhalb einer Sekunde Ergebnisse anzeigen. 18.02.13 Performance!? 12
  • 13. Der Mythos Performance ● „Mit einem besseren Server wäre das alle kein Problem“ ● „echo ist viel schneller als print“ ● „Mit vielen Joins kann das ja nix werden auf der Datenbank“ Google Suche „performance tips php“ → Ungefähr 166.000.000 Ergebnisse (0,31 Sekunden) 18.02.13 Performance!? 13
  • 14. Nicht raten → Messen! Problem → messen → analysieren (→ optimieren) 18.02.13 Performance!? 14
  • 15. Vorge he ns we is e ● Einzelnen Use-Case von außen nach innen ● Vom Groben ins feine ● Ursachen einkreisen 18.02.13 Performance!? 15
  • 16. De r Blic k aufs Ganze ● Wie schnell reagiert die Anwendung? ● Wie viel kann die Anwendung verarbeiten? ● Wie verhält sich die Anwendung unter verschiedener Last? ● Tools: Apache Bench, Siege, Jmeter uvm. 18.02.13 Performance!? 16
  • 17. De r Blic k aufs Ganze 18.02.13 Performance!? 17
  • 18. Re s pons e Time ● Die Zeit zwischen dem absetzten eines Request bis zum eintreffen der Response des Servers ● Beinhaltet den Download (gesamten Response) aber nicht und Rendern / lokales Verarbeiten der Response bzw. dessen Inhalt! 18.02.13 Performance!? 18
  • 19. Throughput ● Ergibt sich aus einer Vielzahl von Messungen ● Definiert die Anzahl von: Verarbeiteten Anfragen / Zeiteinheit ● Bsp: 10 Anfragen / Sekunde ● Steht im Verhältnis zur Response Time 18.02.13 Performance!? 19
  • 20. Re s pons e Time vs . Troughput ● Der Troughput zeigt die Last die Server verarbeiten muss ● Die Response Time zeigt wie schnell er das macht. 18.02.13 Performance!? 20
  • 21. Bac ke nd – PHP Profiling ● Kompleten Programmablauf aufzeichnen ● Zeiten messen, CPU Auslastung, RAM Belegung ● Tools: ● Xdebug ● XHProf ● (Framework) Eigene Zeitmessungen 18.02.13 Performance!? 21
  • 22. PHP Profiling - Messwerte ● Walltime, CPU-Time, Memory Usage, Call Count, Call-Graph 18.02.13 Performance!? 22
  • 23. Daten erhalten ● Datenbanken (und Webservice-Aufrufe) 18.02.13 Performance!? 23
  • 24. Datenbank - Messwerte ● Zeit um Verbindung aufzubauen ● Meistens zu vernachlässigen ● Zeit um einen Query auszuführen ● Verbrauchter RAM ● Tools: Mysql (Explain, Log, usw.), (Framework / ORM) eigene Messungen 18.02.13 Performance!? 24
  • 25. Webservice - Messwerte ● Zeit um Verbindung aufzubauen ● Zeit um Daten zu empfangen ● Meistens nicht zu beeinflussen ● Wenn eigener Webservice → Gehe zurück auf Los 18.02.13 Performance!? 25
  • 26. Fast geschafft! Vorbereitungen zum testen 18.02.13 Performance!? 26
  • 28. Sandbox nutzen ● Aussagekräftige Test können nur unter immer gleichen Bedingungen gemacht werden! ● Das Host-System sauber halten ● Virtuelles Netzwerk simulierbar ● Tools: Virtual Box, VmWare, VAGRANT 18.02.13 Performance!? 28
  • 29. Tests und Last erzeugen ● Test automatisieren! ● Immer mit selben Daten testen ● Auch hier: Je nach Kontext testen! ● Lasttest, Stresstest, Single Run ● Tools: Jmeter erlaubt auch komplexe Tests 18.02.13 Performance!? 29
  • 30. Ein paar Worte zum Testdesign ● Falsches Testdesign führt zu falschen Aussagen ● Bsp: Die maximale Lastgrenze einer Anwendung kann nur durch detaillierte Simulation von Nutzern annähernd korrekt gemessen werden. 18.02.13 Performance!? 30
  • 31. Bas e line e rs te lle n ● Dient als Ausgangslage ● Bei Frameworks, das Framework messen 18.02.13 Performance!? 31
  • 32. Die fe rtige Umge bung 18.02.13 Performance!? 32
  • 33. Ge nug The orie ! Wir werden dann mal praktisch 18.02.13 Performance!? 33
  • 34. Und je tzt? Optimie re n? ! http://www.theillustratedprofessor.com/wp-content/uploads/2012/02/It-Depends-1.jpg 18.02.13 Performance!? 34
  • 35. Es gibt ke in HowTo ● Jedes Ergebnis muss einzeln im Kontext betrachtet werden ● Optimierungen müssen zusammenspielen ● Alle gemachten Optimierungen testen ● Im Einzelnen und und im Zusammenspiel 18.02.13 Performance!? 35
  • 36. Je besser man das Problem versteht, umso besser kann man es beheben! 18.02.13 Performance!? 36
  • 37. Abe r e in paar Re ge ln ● So geht es nicht: ● Teure Funktionen in einer Schleife ● Daten doppelt erzeugen ● Statische Daten bei jedem Aufruf erzeugen ● Nicht verwendete Daten erzeugen ● Uvm. 18.02.13 Performance!? 37
  • 38. Ein paar Regeln ● So geht’s: ● Die Response so früh wie möglich erzeugen ● Nur benötigte Daten holen ● Nicht zeitkritische Aufgaben verschieben ● Statische Daten nur einmal vom Webservice holen (Geocoding z.B) ● Caching! 18.02.13 Performance!? 38
  • 39. Datenbanken verstehen ● Storage-Engines entsprechend anwenden ● Querys analysieren und verstehen ● Query-Cache nutzen ● NOW() umgeht den Query-Cache ● Ggf. Daten denormalisieren ● Birgt aber gefahren 18.02.13 Performance!? 39
  • 40. Fragen? Follow Me: @el_wichtel / @wichteldesign Autonetzer? Gutscheincode: iknowfelix 18.02.13 Performance!? 40