ݺߣ

ݺߣShare a Scribd company logo
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(/slideshow/optymalizacja-serwisw-www-presentation/927922/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

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(/slideshow/optymalizacja-serwisw-www-presentation/927922/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Ę ;)