Optymalizacja wydajności związanej z treścią

Nasze aplikacje internetowe stają się coraz bardziej wyrafinowane, ambitne i funkcjonalne – to dobry kierunek. Jednak niepowstrzymane dążenie ku coraz bogatszym wrażeniom w Internecie powoduje powstanie kolejnego trendu: ilość danych pobieranych przez aplikacje rośnie w stałym tempie. Aby zagwarantować najwyższą wydajność, musimy zoptymalizować transfer każdego bajtu.

Jak wygląda nowoczesna aplikacja internetowa? Projekt HTTP Archive pozwoli nam uzyskać odpowiedź na to pytanie. Projekt ten śledzi sposób budowy stron internetowych, regularnie indeksując najbardziej popularne witryny (ponad 300 000 pozycji z listy Alexa Top 1M), w każdej z lokalizacji rejestrując i agregując analizy liczby zasobów, rodzaju treści i innych metadanych.

Trendy zarejestrowane w projekcie HTTP Archive

50 percentyl 75 percentyl 90 percentyl
HTML 13 KB 26 KB 54 KB
Obrazy 528 KB 1213 KB 2384 KB
JavaScript 207 KB 385 KB 587 KB
CSS 24 KB 53 KB 108 KB
Inne 282 KB 308 KB 353 KB
Razem 1054 KB 1985 KB 3486 KB

Powyższe dane przedstawiają trendy wzrostu ilości danych pobranych z popularnych lokalizacji w Internecie od stycznia 2013 r. do stycznia 2014 r. Oczywiście nie każda witryna rośnie w tym samym tempie lub generuje tę samą ilość danych, dlatego zamieszczamy różne kwantyle z dystrybucji: 50. (mediana), 75. i 90.

Medianowa witryna na początku 2014 r. generowała 75 żądań o łącznym rozmiarze 1054 KB przesłanych danych. Łączna ilość danych (i żądań) rosła w stałym tempie przez cały poprzedni rok. Nie powinno to nikogo dziwić, choć niesie za sobą poważne konsekwencje odnośnie do wydajności: tak, połączenia sieciowe stają się coraz szybsze, jednak zależnie od kraju różnią się od siebie dynamiką, a wielu użytkowników nadal podlega limitom i opłatom za transfer danych – szczególnie w przypadku Internetu na urządzeniach mobilnych.

W przeciwieństwie do swoich komputerowych odpowiedników, aplikacje internetowe nie wymagają osobnego procesu instalacji: wystarczy wprowadzić adres URL i można pracować -- to najważniejsza cecha Internetu. Jest to możliwe dzięki temu, że pobiera się często dziesiątki, a czasami setki różnych zasobów, których łączny rozmiar może sięgać megabajtów. Błyskawiczne działanie aplikacji internetowych, do którego dążymy, jest możliwe dzięki pobieraniu wszystkich tych danych razem w ciągu kilkuset milisekund.

Osiągnięcie szybkiej pracy aplikacji internetowych jest w świetle tych wymagań niełatwym zadaniem. Dlatego kluczowe znaczenie ma optymalizacja wydajności związanej z treścią: eliminacja zbędnych pobrań, optymalizacja kodowania transferu każdego zasobu dzięki różnym technikom kompresji, jak również powszechne użycie funkcji buforowania w celu eliminacji powtarzających się pobrań.