SlideShare a Scribd company logo
1 of 38
Download to read offline
OPTYMALIZACJA SERWISÓW WWW CZĘŚĆ 1




                     Elbląg 2009
                    Godzina 3:43
O mnie


Sławomir Pawęska – programista PHP

Zdarza mi się widzied:
• fotka.pl
• emuzyka.pl
• swistak.pl
• itd…



2009-01-16
O czym dziś będzie?




• tips&tricks
                      Sprawy sądowe i zobowiązania
• CSS sprites
• minify
• (mem)cache
• varnish, nginx, lightppd, …


2009-01-16
Jaka optymalizacja marnuje Twój czas?




$max = count($array);
                      Sprawy sądowe i zobowiązania
for ($i = 0; $i < $max; $i++)
//is faster than
for ($i = 0; $i < count($array); $i++)




2009-01-16
Jaka optymalizacja marnuje Twój czas?




if (!isset($foo{5})) { echo quot;Foo is too shortquot;; }
                       Sprawy sądowe i zobowiązania
//is faster than
if (strlen($foo) < 5) { echo quot;Foo is too shortquot;; }




2009-01-16
Czy to naprawde zysk?




0,000000001
                   Sprawy sądowe i zobowiązania
//is faster than
0,000000000002




2009-01-16
Czy sprawdzam to co czytam?




Komentarze zamulają kod!
                      Sprawy sądowe i zobowiązania


Tak – ale w PHP3 gdy kod był interpretowany linia po
linii a o APC nikt jeszcze nawet nie marzył ;)




2009-01-16
CZY JEST NA SALI PROGRAMISTA? :>
Może mały test




                  Sprawy sądowe i zobowiązania
                     ++i      czy      i++

                 ++i;++i;     czy         2+=i




2009-01-16
Może mały test




                  Sprawy sądowe i zobowiązania
                     ++i       >       i++

                 ++i;++i;     czy         2+=i




2009-01-16
Może mały test




                 Sprawy sądowe i zobowiązania
                    ++i       >       i++

                 ++i;++i;     <         2+=i




2009-01-16
JEŚLI NIE 0,0000000000001 TO CO?
Jakob Nielsen odpowiada


• 10 sekund to maksimum jakie user potrafi spędzid
na oczekiwaniu na załadowanie się strony
                      Sprawy sądowe i zobowiązania


• 15 sekund akceptowalne jest wyłącznie dla kilku
kluczowych (dla usera) stron

• jakie masz łącze?

2009-01-16
Lubię Yahoo




              Sprawy sądowe i zobowiązania




2009-01-16
Kilka liczb




• HTML                     5%-38%
                   Sprawy sądowe i zobowiązania


• CSS/JS/Images            62%-95%

• 2-4 hosty dla połączeo


2009-01-16
Lubię Yahoo




              Sprawy sądowe i zobowiązania




2009-01-16
Może się mylą?




                 Sprawy sądowe i zobowiązania




2009-01-16
Przyspieszę Twój internet ;)


• Internet Explorer
             HKEY_CURRENT_USER  Software  Microsoft 
                           Sprawy sądowe i zobowiązania
             Windows  CurrentVersion  Internet Settings


• Firefox
             About:config




2009-01-16
Ale nie krzywdź sieci




                        Sprawy sądowe i zobowiązania




2009-01-16
Inżynier ma pomysł!




• 20 obrazków                  36x36px 0.9Kb
                      Sprawy sądowe i zobowiązania


• 20 obrazków                 116x61px 3.4Kb

• różna liczba hostów         (1,2,4,5,10)


2009-01-16
Co z tymi hostami?




                     Sprawy sądowe i zobowiązania




2009-01-16
Wnioski




• Yahoo
                 Sprawy sądowe i zobowiązania
      quot;muszę zmienid kompaquot;

• reszta
       quot;zbyt duże opóźnienia na DNSquot;


2009-01-16
CSS SPRITES RATUNKIEM
Ale o co chodzi?




#rss {                    Sprawy sądowe i zobowiązania
  background-image: url(sprite.png);
  background-position: -8px -40px;
  width: 16px;
  height: 16px;
}




2009-01-16
Czy ktoś z tego korzysta?




                     Sprawy sądowe i zobowiązania




2009-01-16
Pomocnik




             Sprawy sądowe i zobowiązania




2009-01-16
MAŁE JEST PIĘKNE
Czym jest CSS/JS minify




• białe znaki, komentarze
                    Sprawy sądowe i zobowiązania




• zaciemnianie




2009-01-16
Jaki jest zysk?




                                            Full Source        Minified
                                Sprawy sądowe i zobowiązania
                   Uncompressed                  78151           38051

             Compressed with gzip                15207           10799




2009-01-16
PRZEJDŹMY DO CZEGOŚ CIEKAWSZEGO
Site


                                                Static
             Apache

                      Sprawy sądowe i zobowiązania
                                       Częste         Mało
              DB
                                     zapytania       zapytao


                             Cache


2009-01-16
Baza danych


• index'y
        - EXPLAIN
                     Sprawy sądowe i zobowiązania
• dzielenie tabel
• cfg (RAM i ilośd połączeo)
• master/slave
• nie lubimy JOINa


2009-01-16
Static


• dużo zapytao
      - JS
                   Sprawy sądowe i zobowiązania
      - CSS
      - małe obrazki
• mało zapytao
      - duże obrazki (np. galeria)
            - S3?

2009-01-16
Static




• Apache się nie nadaje!
                   Sprawy sądowe i zobowiązania
      - wątki

• Nginx/Lightppd




2009-01-16
Dynamic




• niewiele tu osiągniemy
                      Sprawy sądowe i zobowiązania
       - cfg (ilośd połączeo)

• kupujemy maszyny ;)




2009-01-16
Cache




• dla static
                    Sprawy sądowe i zobowiązania
       - varnish
       - squid
• dla db
       - memcache


2009-01-16
Warto sprawdzid




• http://highscalability.com/
                     Sprawy sądowe i zobowiązania
• http://yuiblog.com/blog/
• http://notatnik.mekk.waw.pl/
• http://www.useit.com/
• http://ui.blox.pl/html


2009-01-16
CDN (JUŻ ZA CHWILĘ ;)

More Related Content

Similar to Optymalizacja serwisów WWW

Optymalizacja Serwisów WWW
Optymalizacja Serwisów WWWOptymalizacja Serwisów WWW
Optymalizacja Serwisów WWWPaweł Harajda
 
Łukasz Grala - WSKIZ 2009-04-07 It Academic - SQL Server 2008 - Nowości Adm...
Łukasz Grala - WSKIZ 2009-04-07 It Academic - SQL Server 2008 - Nowości   Adm...Łukasz Grala - WSKIZ 2009-04-07 It Academic - SQL Server 2008 - Nowości   Adm...
Łukasz Grala - WSKIZ 2009-04-07 It Academic - SQL Server 2008 - Nowości Adm...Łukasz Grala
 
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegroallegro.tech
 
Perfomance w Joomla - Jak przyspieszyć działanie strony?
Perfomance w Joomla - Jak przyspieszyć działanie strony?Perfomance w Joomla - Jak przyspieszyć działanie strony?
Perfomance w Joomla - Jak przyspieszyć działanie strony?Piotr Nalepa
 
Pocałunek śmierci
Pocałunek śmierciPocałunek śmierci
Pocałunek śmierciDivante
 

Similar to Optymalizacja serwisów WWW (9)

Optymalizacja Serwisów WWW
Optymalizacja Serwisów WWWOptymalizacja Serwisów WWW
Optymalizacja Serwisów WWW
 
Feo w-joomla
Feo w-joomlaFeo w-joomla
Feo w-joomla
 
Jaki framework wybrać
Jaki framework wybraćJaki framework wybrać
Jaki framework wybrać
 
Łukasz Grala - WSKIZ 2009-04-07 It Academic - SQL Server 2008 - Nowości Adm...
Łukasz Grala - WSKIZ 2009-04-07 It Academic - SQL Server 2008 - Nowości   Adm...Łukasz Grala - WSKIZ 2009-04-07 It Academic - SQL Server 2008 - Nowości   Adm...
Łukasz Grala - WSKIZ 2009-04-07 It Academic - SQL Server 2008 - Nowości Adm...
 
Prezentacja o X11
Prezentacja o X11Prezentacja o X11
Prezentacja o X11
 
Iron Python I Dlr
Iron Python I DlrIron Python I Dlr
Iron Python I Dlr
 
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
 
Perfomance w Joomla - Jak przyspieszyć działanie strony?
Perfomance w Joomla - Jak przyspieszyć działanie strony?Perfomance w Joomla - Jak przyspieszyć działanie strony?
Perfomance w Joomla - Jak przyspieszyć działanie strony?
 
Pocałunek śmierci
Pocałunek śmierciPocałunek śmierci
Pocałunek śmierci
 

More from Paweł Harajda

Olcamp v18 Project Managment
Olcamp v18 Project ManagmentOlcamp v18 Project Managment
Olcamp v18 Project ManagmentPaweł Harajda
 
Nasza Klasa, black swan theory
Nasza Klasa, black swan theoryNasza Klasa, black swan theory
Nasza Klasa, black swan theoryPaweł Harajda
 
Informatycy I Wielka Encyklopedia Warmii I Mazur 2
Informatycy I Wielka Encyklopedia Warmii I Mazur 2Informatycy I Wielka Encyklopedia Warmii I Mazur 2
Informatycy I Wielka Encyklopedia Warmii I Mazur 2Paweł Harajda
 
“Jak zbudować biznes internetowy w oparciu o listy mailingowe.” - Grzegorz Figoń
“Jak zbudować biznes internetowy w oparciu o listy mailingowe.” - Grzegorz Figoń“Jak zbudować biznes internetowy w oparciu o listy mailingowe.” - Grzegorz Figoń
“Jak zbudować biznes internetowy w oparciu o listy mailingowe.” - Grzegorz FigońPaweł Harajda
 
“Startupy i pierwsze kontakty z mediami. Jak to robić skutecznie.” - Maciej B...
“Startupy i pierwsze kontakty z mediami. Jak to robić skutecznie.” - Maciej B...“Startupy i pierwsze kontakty z mediami. Jak to robić skutecznie.” - Maciej B...
“Startupy i pierwsze kontakty z mediami. Jak to robić skutecznie.” - Maciej B...Paweł Harajda
 
Inżynieria Partyzancka
Inżynieria PartyzanckaInżynieria Partyzancka
Inżynieria PartyzanckaPaweł Harajda
 
Prywatność a prawa autorskie w dobie Internetu
Prywatność a prawa autorskie w dobie InternetuPrywatność a prawa autorskie w dobie Internetu
Prywatność a prawa autorskie w dobie InternetuPaweł Harajda
 
Prezentacja Linuxcamp.pl
Prezentacja Linuxcamp.plPrezentacja Linuxcamp.pl
Prezentacja Linuxcamp.plPaweł Harajda
 
Ciągła Integracja W Projekcie - Metodyka I Narzędzia
Ciągła Integracja W Projekcie - Metodyka I NarzędziaCiągła Integracja W Projekcie - Metodyka I Narzędzia
Ciągła Integracja W Projekcie - Metodyka I NarzędziaPaweł Harajda
 
Jak Nie Robić Prezentacji
Jak Nie Robić PrezentacjiJak Nie Robić Prezentacji
Jak Nie Robić PrezentacjiPaweł Harajda
 

More from Paweł Harajda (16)

Startup jam baltics
Startup jam balticsStartup jam baltics
Startup jam baltics
 
Olcamp v18 Project Managment
Olcamp v18 Project ManagmentOlcamp v18 Project Managment
Olcamp v18 Project Managment
 
Olcamp 2010
Olcamp 2010Olcamp 2010
Olcamp 2010
 
Nasza Klasa, black swan theory
Nasza Klasa, black swan theoryNasza Klasa, black swan theory
Nasza Klasa, black swan theory
 
Informatycy I Wielka Encyklopedia Warmii I Mazur 2
Informatycy I Wielka Encyklopedia Warmii I Mazur 2Informatycy I Wielka Encyklopedia Warmii I Mazur 2
Informatycy I Wielka Encyklopedia Warmii I Mazur 2
 
“Jak zbudować biznes internetowy w oparciu o listy mailingowe.” - Grzegorz Figoń
“Jak zbudować biznes internetowy w oparciu o listy mailingowe.” - Grzegorz Figoń“Jak zbudować biznes internetowy w oparciu o listy mailingowe.” - Grzegorz Figoń
“Jak zbudować biznes internetowy w oparciu o listy mailingowe.” - Grzegorz Figoń
 
“Startupy i pierwsze kontakty z mediami. Jak to robić skutecznie.” - Maciej B...
“Startupy i pierwsze kontakty z mediami. Jak to robić skutecznie.” - Maciej B...“Startupy i pierwsze kontakty z mediami. Jak to robić skutecznie.” - Maciej B...
“Startupy i pierwsze kontakty z mediami. Jak to robić skutecznie.” - Maciej B...
 
Inżynieria Partyzancka
Inżynieria PartyzanckaInżynieria Partyzancka
Inżynieria Partyzancka
 
Prywatność a prawa autorskie w dobie Internetu
Prywatność a prawa autorskie w dobie InternetuPrywatność a prawa autorskie w dobie Internetu
Prywatność a prawa autorskie w dobie Internetu
 
Prezentacja Linuxcamp.pl
Prezentacja Linuxcamp.plPrezentacja Linuxcamp.pl
Prezentacja Linuxcamp.pl
 
Stylespace.pl
Stylespace.plStylespace.pl
Stylespace.pl
 
Olsztyn 2.0
Olsztyn 2.0Olsztyn 2.0
Olsztyn 2.0
 
Podstawy SEO
Podstawy SEOPodstawy SEO
Podstawy SEO
 
Ciągła Integracja W Projekcie - Metodyka I Narzędzia
Ciągła Integracja W Projekcie - Metodyka I NarzędziaCiągła Integracja W Projekcie - Metodyka I Narzędzia
Ciągła Integracja W Projekcie - Metodyka I Narzędzia
 
Web Cache
Web CacheWeb Cache
Web Cache
 
Jak Nie Robić Prezentacji
Jak Nie Robić PrezentacjiJak Nie Robić Prezentacji
Jak Nie Robić Prezentacji
 

Optymalizacja serwisów WWW

  • 1. OPTYMALIZACJA SERWISÓW WWW CZĘŚĆ 1 Elbląg 2009 Godzina 3:43
  • 2. O mnie Sławomir Pawęska – programista PHP Zdarza mi się widzied: • fotka.pl • emuzyka.pl • swistak.pl • itd… 2009-01-16
  • 3. O czym dziś będzie? • tips&tricks Sprawy sądowe i zobowiązania • CSS sprites • minify • (mem)cache • varnish, nginx, lightppd, … 2009-01-16
  • 4. Jaka optymalizacja marnuje Twój czas? $max = count($array); Sprawy sądowe i zobowiązania for ($i = 0; $i < $max; $i++) //is faster than for ($i = 0; $i < count($array); $i++) 2009-01-16
  • 5. Jaka optymalizacja marnuje Twój czas? if (!isset($foo{5})) { echo quot;Foo is too shortquot;; } Sprawy sądowe i zobowiązania //is faster than if (strlen($foo) < 5) { echo quot;Foo is too shortquot;; } 2009-01-16
  • 6. Czy to naprawde zysk? 0,000000001 Sprawy sądowe i zobowiązania //is faster than 0,000000000002 2009-01-16
  • 7. Czy sprawdzam to co czytam? Komentarze zamulają kod! Sprawy sądowe i zobowiązania Tak – ale w PHP3 gdy kod był interpretowany linia po linii a o APC nikt jeszcze nawet nie marzył ;) 2009-01-16
  • 8. CZY JEST NA SALI PROGRAMISTA? :>
  • 9. Może mały test Sprawy sądowe i zobowiązania ++i czy i++ ++i;++i; czy 2+=i 2009-01-16
  • 10. Może mały test Sprawy sądowe i zobowiązania ++i > i++ ++i;++i; czy 2+=i 2009-01-16
  • 11. Może mały test Sprawy sądowe i zobowiązania ++i > i++ ++i;++i; < 2+=i 2009-01-16
  • 13. Jakob Nielsen odpowiada • 10 sekund to maksimum jakie user potrafi spędzid na oczekiwaniu na załadowanie się strony Sprawy sądowe i zobowiązania • 15 sekund akceptowalne jest wyłącznie dla kilku kluczowych (dla usera) stron • jakie masz łącze? 2009-01-16
  • 14. Lubię Yahoo Sprawy sądowe i zobowiązania 2009-01-16
  • 15. Kilka liczb • HTML 5%-38% Sprawy sądowe i zobowiązania • CSS/JS/Images 62%-95% • 2-4 hosty dla połączeo 2009-01-16
  • 16. Lubię Yahoo Sprawy sądowe i zobowiązania 2009-01-16
  • 17. Może się mylą? Sprawy sądowe i zobowiązania 2009-01-16
  • 18. Przyspieszę Twój internet ;) • Internet Explorer HKEY_CURRENT_USER Software Microsoft Sprawy sądowe i zobowiązania Windows CurrentVersion Internet Settings • Firefox About:config 2009-01-16
  • 19. Ale nie krzywdź sieci Sprawy sądowe i zobowiązania 2009-01-16
  • 20. Inżynier ma pomysł! • 20 obrazków 36x36px 0.9Kb Sprawy sądowe i zobowiązania • 20 obrazków 116x61px 3.4Kb • różna liczba hostów (1,2,4,5,10) 2009-01-16
  • 21. Co z tymi hostami? Sprawy sądowe i zobowiązania 2009-01-16
  • 22. Wnioski • Yahoo Sprawy sądowe i zobowiązania quot;muszę zmienid kompaquot; • reszta quot;zbyt duże opóźnienia na DNSquot; 2009-01-16
  • 24. Ale o co chodzi? #rss { Sprawy sądowe i zobowiązania background-image: url(sprite.png); background-position: -8px -40px; width: 16px; height: 16px; } 2009-01-16
  • 25. Czy ktoś z tego korzysta? Sprawy sądowe i zobowiązania 2009-01-16
  • 26. Pomocnik Sprawy sądowe i zobowiązania 2009-01-16
  • 28. Czym jest CSS/JS minify • białe znaki, komentarze Sprawy sądowe i zobowiązania • zaciemnianie 2009-01-16
  • 29. Jaki jest zysk? Full Source Minified Sprawy sądowe i zobowiązania Uncompressed 78151 38051 Compressed with gzip 15207 10799 2009-01-16
  • 30. PRZEJDŹMY DO CZEGOŚ CIEKAWSZEGO
  • 31. Site Static Apache Sprawy sądowe i zobowiązania Częste Mało DB zapytania zapytao Cache 2009-01-16
  • 32. Baza danych • index'y - EXPLAIN Sprawy sądowe i zobowiązania • dzielenie tabel • cfg (RAM i ilośd połączeo) • master/slave • nie lubimy JOINa 2009-01-16
  • 33. Static • dużo zapytao - JS Sprawy sądowe i zobowiązania - CSS - małe obrazki • mało zapytao - duże obrazki (np. galeria) - S3? 2009-01-16
  • 34. Static • Apache się nie nadaje! Sprawy sądowe i zobowiązania - wątki • Nginx/Lightppd 2009-01-16
  • 35. Dynamic • niewiele tu osiągniemy Sprawy sądowe i zobowiązania - cfg (ilośd połączeo) • kupujemy maszyny ;) 2009-01-16
  • 36. Cache • dla static Sprawy sądowe i zobowiązania - varnish - squid • dla db - memcache 2009-01-16
  • 37. Warto sprawdzid • http://highscalability.com/ Sprawy sądowe i zobowiązania • http://yuiblog.com/blog/ • http://notatnik.mekk.waw.pl/ • http://www.useit.com/ • http://ui.blox.pl/html 2009-01-16
  • 38. CDN (JUŻ ZA CHWILĘ ;)