czasu ładowania stron ◦ spadek odsłon o 5-9% • Mozilla poprawiła czas ładowania strony "reklamowej" Firefoxa o 2,2 sekundy ◦ wzrost pobrań o 15,4% (60 milionów w skali roku).
i struktury bazy danych • przetwarzanie offline ◦ czy wszystkie operacje muszą odbywać się w trakcie obsługi żądania od użytkownika? ◦ message queue, crontab • mikroserwisy, SOA.
(91.198.174.192), 30 hops max, 60 byte packets 1 95.85.28.254 (95.85.28.254) 0.338 ms 0.304 ms 0.360 ms 2 95.85.0.237 (95.85.0.237) 0.251 ms 7.433 ms 95.85.0.233 (95.85.0.233) 0.239 ms 3 95.85.0.249 (95.85.0.249) 31.483 ms 31.485 ms 0.265 ms 4 text-lb.esams.wikimedia.org (91.198.174.192) 1.195 ms rtt min/avg/max/mdev = 0.756/1.114/1.536/0.178 ms macbre@debian:~$ traceroute -T wikipedia.org traceroute to wikipedia.org (91.198.174.192), 30 hops max, 60 byte packets 1 192.168.1.1 (192.168.1.1) 1.148 ms 1.342 ms * ... 6 * rt1-przybyszewskiego-vlan503.core.icpnet.pl (62.21.99.162) 7.884 ms 11.777 ms 7 rev-193.111.37.117.atman.pl (193.111.37.117) 15.757 ms 16.677 ms 15.618 ms 8 text-lb.esams.wikimedia.org (91.198.174.192) 47.485 ms 46.750 ms 47.568 ms macbre@debian:~$ ping wikipedia.org -c 50 rtt min/avg/max/mdev = 40.988/42.507/49.930/1.641 ms
https://www.igvita.com/2012/07/19/latency-the-new-web-performance-bottleneck/ Mbit/s a czas wczytywania strony RTT a czas wczytywania strony RTT = Round Trip Time
• oparty o protokół TCP/IP ◦ TCP z roku 1989 ◦ kosztowne połączenie (SYN, SYN/ACK, ACK) + negocjacja przy połączeniach HTTPS (5+ pakietów) ◦ odbiór każdego pakietu musi zostać potwierdzony.
PNG? i. progresywny JPEG b. usunięcie metadanych z plików (mozjpeg) c. prawidłowe skalowanie grafiki d. CDN / cookie-less domain e. WebP od Google’a (nawet do 50% mniejsze pliki) f. sprite’y… http://blarg.co.uk/blog/comparison-of-jpeg-lossless-compression-tools
i. ładowanie skryptów na dole strony lub async b. operacje na DOM są “ciężkie” c. cache’owanie selektorów jQuery d. podpinanie zdarzeń (events bubbling) e. cache’owanie z użyciem local storage.
SASS / LESS b. optymalizacja selektorów (“czytane” od prawej) c. animacje w CSS3 (transition) d. enkodowanie obrazków w base64 e. usuwanie niepotrzebnych prefixów: -webkit-, -moz- f. wykorzystanie dziedziczenia: ul vs ul li.
na sekundę ◦ 86% to obrazki ◦ 3% to HTML • 2.5 mld zapytań HTTP do naszego CDNa ◦ 29 000 na sekundę • 110 mln zapytań do naszych Apache’y (~4,5%) ◦ 1270 na sekundę ◦ 39 maszyn (po 256 GB RAM, 32x 3.30GHz) Dzień z życia Wikii