A webes erőforrás tömörítése a hálózati bájtokat csökkenti, miközben a böngészőben kibontott tartalom mérete változatlan maradhat. A várakozásból ezért azt a részt kell elkülönítened, amelyet ténylegesen az adatátvitel tölt ki. A kapcsolat, a kiszolgálás és a feldolgozás mérését tartsd meg a méretadatok mellett.
A HTTP-fejléc-elemző a kiszolgálás megértésében, a letöltésiidő-kalkulátor az adatátviteli becslésben segít. A cikk számításai egyszerűsített hálózati modellek; valós betöltési időt külön mérés igazolhat.
Két méret egy erőforráshoz
Legyen a kibontott szöveges erőforrás 1 200 000 bájt, a tömörítetten átvitt tartalom 300 000 bájt. Az átvitt rész az eredeti méret 25%-a, a csökkenés 75%.
A tömörítési arány itt eredeti / tömörített formában 4:1. Más eszköz százalékos méretet vagy megtakarítást nevezhet aránynak, ezért a mutató definícióját fel kell tüntetni. A 25% és a 75% ugyanazt a helyzetet írja le eltérő alappal.
A példában tízes alapú bájtértékeket használunk. A kB és KiB megkülönböztetése a kijelzett számokat módosíthatja, ezért összehasonlításkor a nyers bájtadat a legátláthatóbb.
Elméleti átviteli idő
Ha a kapcsolat hasznos adatátviteli sebessége 10 000 000 bit/s, a tömörített tartalom 300 000 × 8 = 2 400 000 bit. A tiszta átviteli idő 2 400 000 / 10 000 000 = 0,24 másodperc.
A tömörítetlen 1 200 000 bájthoz ugyanilyen feltételekkel 0,96 másodperc tartozik. A különbség 0,72 másodperc. Ebben nincs kapcsolatfelépítés, kiszolgálói várakozás, fejléc, párhuzamos versengés vagy feldolgozás.
A névleges internetcsomag sebességét ezért ne tekintsd automatikusan a fájl rendelkezésére álló hasznos sebességnek. A valós oldalon több erőforrás és több késleltetési összetevő is megjelenhet.
Mit mond a Content-Encoding?
A Content-Encoding fejléc jelzi az alkalmazott tartalomkódolást, például gzip vagy br. Ez a tartalom hálózati reprezentációjának tulajdonsága. A kliens és a szerver egyeztetése is meghatározhatja, milyen változat érkezik.
Egy fájl kiterjesztéséből vagy a böngészőben látható szövegből nem mindig derül ki, hogy átvitel közben tömörítve volt-e. A tényleges válaszfejléceket és az átvitt méretet együtt kell megvizsgálni. Gyorsítótárból kiszolgált erőforrás esetén külön állapotot mérsz.
Content-Encoding mellett a Content-Length méretadata a kódolt reprezentációra vonatkozik, de nem minden válaszban szerepel. Egy hiányzó fejléc nem bizonyítja a tömörítés hiányát.
Miért nem ennyi a memóriaigény?
A 300 000 bájtos hálózati tartalom kibontva 1 200 000 bájt lehet, a feldolgozás pedig további adatstruktúrákat hozhat létre. DOM-elemek, JavaScript-objektumok vagy más futásidejű reprezentációk mérete külön kérdés. A tömörített fájlméretből ezért nem következik azonos böngészőmemória-használat.
Egy saját tesztben külön mérd a hálózati forgalmat, a kibontott erőforrás méretét és a feldolgozási időt. Ha egy nagy program csak néhány szükséges funkciót használ, a tömörítés mellett a felesleges kód elhagyása is vizsgálható. A változtatás hatását funkcionális tesztnek is igazolnia kell.
Összehasonlítható mérések
Az előtte és utána teszt ugyanazon erőforrásra, hasonló hálózati beállításra és ismert gyorsítótár-állapotra vonatkozzon. Egy hideg és egy meleg gyorsítótáras betöltés különbségét könnyű tévesen a tömörítés javulásának tulajdonítani.
Rögzítsd a pontos URL-t, az ellenőrzés idejét, a kódolást, az átvitt és kibontott méretet. A saját példánkban a 75%-os méretcsökkenés bizonyított aritmetikai eredmény, a webhely teljes gyorsulására viszont nem ad közvetlen állítást.
A 75%-os méretcsökkenés nem ugyanekkora teljes időcsökkenés
Készíts egy kizárólag egymás után végrehajtott lépésekből álló időmodellt. A kiszolgálásra és kapcsolatkezelésre együtt 0,60 s, a feldolgozásra 0,16 s jut. Ezeket most változatlannak feltételezzük; közöttük a korábbi tömörítetlen átvitel 0,96 s. Az összes idő így 0,60 + 0,96 + 0,16 = 1,72 s.
A tömörített átvitel 0,24 s-os idejével ugyanebben a modellben 0,60 + 0,24 + 0,16 = 1,00 s adódik. A csökkenés 0,72 s, a teljes korábbi időhöz képest 0,72 / 1,72 ≈ 41,86%. A 75% továbbra is a tartalom bájtméretének és a külön vizsgált átviteli rész idejének csökkenése.
A valós oldal több átfedő feladatot és eltérő kibontási költséget tartalmazhat. A példából ezért csak a nevezők különbsége következik, mért oldalgyorsulás nem. A jelentésben külön nevezd meg az átvitt bájtok csökkenését és a felhasználó szempontjából kiválasztott időmutató változását.
Gyakori kérdések
Minden fájl ugyanannyira tömöríthető?
A tartalom szerkezete és korábbi tömörítése is számít. A példabeli 75% nem általános megtakarítási arány.
A kisebb letöltés biztosan kisebb processzorterhelés?
A kibontás és a feldolgozás külön munkát igényel. A hálózati nyereséget és a futásidejű terhelést külön kell mérni.
A 0,24 másodperc a teljes oldalbetöltés?
Csak a példabeli tartalom idealizált adatátviteli ideje. A teljes felhasználói várakozás több összetevőből áll.
Módszertani forrás
Záró tudáspróba
Válassz kérdésenként egy választ, és jegyezd fel a betűjelét. Minden helyes válasz 1 pont; a hibás, kihagyott vagy több betűvel jelölt válasz 0 pont. Legfeljebb 3 pontot szerezhetsz. A megoldókulcsot a válaszadás után olvasd el.
1. A soros modellben 0,60 s várakozás, 0,24 s átvitel és 0,16 s feldolgozás van. Mennyi az összes idő?
- A) 0,24 s
- B) 1,00 s
- C) 0,76 s
2. 1,72 s-ról 1,00 s-ra csökken az összes idő. Mekkora a relatív csökkenés?
- A) 75%
- B) Körülbelül 41,86%
- C) 72%
3. A 300 000 bájtos tömörített átvitelből következik, hogy a böngésző összesen ugyanennyi memóriát használ?
- A) Igen, ha a Content-Encoding jelen van.
- B) Igen, a hálózati és memóriaméret azonos.
- C) Nem; a kibontott tartalom és a létrejövő adatstruktúrák külön méretet jelentenek.
Megoldókulcs és értelmezés
1. B. 0,60 + 0,24 + 0,16 = 1,00 s. Az átvitel csak egy része a modellnek.
2. B. A 0,72 s különbséget az eredeti 1,72 s idővel osztjuk.
3. C. A példabeli kibontott erőforrás 1 200 000 bájt, és a feldolgozás további reprezentációkat hozhat létre.
0–1 pont: A „75%-os méretcsökkenés” részben külön számold az átviteli és teljes időt, és minden százalékhoz írd oda a nevezőt.
2 pont: A hibás vagy kihagyott válasz magyarázata alapján keresd vissza a kapcsolódó számítást, majd oldd meg újra azt a kérdést.
3 pont: A három feladatban helyesen alkalmaztad a cikk összefüggéseit. A következő mérésben a bájtadatot és a kiválasztott betöltési időmutatót azonos gyorsítótár-feltételek mellett rögzítsd. A rövid próba csak ezeket a tanulságokat ellenőrzi.