Dajbych.net


Testovací laboratoř pro Internet Explorer

, 11 minut čtení

Po­sled­ních pět let se v Red­mondu po­stupně sta­věla la­bo­ra­toř pro tes­to­vání spo­leh­li­vosti a vý­konu In­ter­net Ex­plo­reru. Dnes patří mezi nej­so­fis­ti­ko­va­nější ná­stroje pro mě­ření webu. Denně v ní proběhne na 200 testů vý­konu In­ter­net Ex­plo­reru, pro­vede se 5,7 mi­li­onu mě­ření a shro­máždí se 480 GB dat. Mě­ření probíhá kaž­dých 100 na­no­sekund. Pro kaž­dou změnu ve zdro­jo­vém kódu IE je tak známé, jaký měla do­pad na jeho vý­kon.

La­bo­ra­toř je mi­ni­a­turní verze In­ter­netu. Skládá se z více jak 140 strojů nej­růz­něj­ších typů. Obsahuje desk­topy, no­te­booky, net­booky a tablety s pro­ce­sory ar­chi­tek­tury x86, x64 i ARM. Za­hr­nuje we­bové ser­very, DNS ser­very, rou­tery a emulá­tory sítí, které mají za úkol si­mulo­vat různé typy při­po­jení. Síť umož­ňuje od­stra­nit všechny zdroje ná­hody. Všechny pro­vá­děné testy mohou být de­ter­mi­nis­tické a lze je tedy kdy­ko­liv zo­pa­ko­vat.

La­bo­ra­toř vyu­žívá Win­dows Per­for­mance Tools (WPT), díky kte­rému je možné spus­tit stejné testy a po­rov­nat výsledky. Jdou spus­tit pro různé pro­hlí­žeče, pa­nely ná­strojů, an­ti­vi­rové pro­gramy i další pro­gramy tře­tích stran. WPT do­káže mě­řit vše od zá­těže CPU a GPU až po účin­nost cache pamětí, vy­tí­žení sítě a vyu­ží­vání paměti. To vše za úče­lem za­jis­tit, aby byly hard­ware, ovla­dače, Win­dows a In­ter­net Ex­plo­rer vzá­jemně op­ti­ma­li­zo­vány. Je­den test zabere okolo 6 ho­din a vy­tvoří 22 GB dat. In­frastruk­turu la­bo­ra­toře tvoří tři celky – síť a ser­very, kli­enty a mě­řící tech­nika.

Jak se měří

Webové servery

Ser­very s we­bo­vými strán­kami ob­sahují ko­pie sku­tečných stránek z In­ter­netu. Je­jich zdro­jový kód je jen upra­ven tak, aby byl de­ter­mi­nis­tický. Na­pří­klad vo­lání funkce Math.Ran­dom je na­hra­zeno sta­tic­kou hod­no­tou. Dy­na­mické URL jsou na­hra­zeny sta­tic­kými. We­bová apli­kace je im­ple­men­to­vána tak, že se z URL vy­tvoří hash, podle kte­rého se do­hledá sta­tický HTML kód, který je na­ke­šo­ván v paměti. Každý ser­ver má 16 ja­der a 16 GB RAM. Kromě toho ob­sahuje la­bo­ra­toř ještě sa­mo­statné ser­very, na kterých běží Outlook Web Ac­cess a Of­fice Web Apps.

Emulátory sítě

Na ně­která sí­ťová spo­jení jsou apli­ko­vány hard­wa­rové emulá­tory, které zpož­ďují a mění po­řadí pa­ketů. V zá­vis­losti na kon­krétní kon­fi­gu­raci tak emulují 56k, DSL a kabe­lové mo­demy či WAN a 4G sítě. Přes­tože je toto ře­šení slo­ži­tější a dražší, než po­u­žití soft­wa­ro­vého ře­šení či proxy, je to je­diný způ­sob, jak přesně mě­řit vý­kon. Pro­hlí­žeč má ome­zení na po­čet sou­čas­ných při­po­jení k proxy, takže by to ovliv­nilo mě­ření. Soft­wa­rový emulá­tor na kli­en­tovi by zase vyu­ží­val jeho vý­kon a zne­hod­no­co­val tak mě­ření, ob­zvláště pak na za­ří­ze­ních na­pá­je­ných z ba­te­rie.

Klienti

La­bo­ra­toř ob­sahuje 120 strojů, na který běží nej­no­vější sta­bilní build In­ter­net Ex­plo­reru z TEST branche (na TFS je ještě DEV a MAIN branch). Jed­not­livé stroje se velmi liší a za­stu­pují ce­lou škálu za­ří­zení – tablety a net­booky po­čí­naje a vý­kon­nými x64 desk­topy konče. Ně­které mají in­te­gro­va­nou gra­fic­kou kartu, jiné ne.

Kli­enti jsou sdru­ženi do sku­pin. V každé sku­pině jsou po­čítače s přesně stej­ným hard­warem. Když se totiž vy­skytne po­ru­cha, po výměně vadné kom­po­nenty za no­vou do­jde téměř vždy ke zrych­lení stroje. Když se měří s přes­ností na 100 na­no­sekund tak i pár taktů do­káže ovliv­nit výsle­dek. Po­kud k tomu do­jde, je po­čítač ze sku­piny od­stra­něn.

Po­kud se měří vý­kon gra­fiky IE, vyu­žívá se strojů z druhé la­bo­ra­toře pro mě­ření gra­fic­kého vý­konu Win­dows, která ob­sahuje téměř každý vyro­bený typ chip­setu. Tato la­bo­ra­toř je ne­o­ce­ni­telná při vy­šet­řo­vání chyby na­příč jed­not­li­vými chip­sety a ver­zemi ovla­dačů gra­fické karty.

Měřící technika

Mě­řící data jsou nej­prve na­shro­máž­děna. Je­jich roz­bor probíhá na sa­mo­stat­ných ser­ve­rech HP Pro­Li­ant DL160 G6. Má 16 ja­der a 16 GB RAM. Tisíce me­t­rik, které se vy­počtou, jsou na­ko­nec ulo­ženy na SQL Ser­ver. Ten shro­maž­ďuje 6 mi­li­onů mě­ření vy­tvo­ře­ných kaž­dým dnem. Běží na 24 já­dro­vém ser­veru s 64 GB RAM.

Co se měří

Načítání obsahu

V první řadě se měří na­vi­gace z jedné stránky do druhé. To za­hr­nuje mě­ření na­příč je­de­nácti vrst­vami In­ter­net Ex­plo­reru, které spo­lečně za­jiš­ťují na­čtení nové stránky.

Peč­li­vým mě­ře­ním na všech těchto vrst­vách vzni­kají ta­ko­véto sta­tis­tiky. Jsou klí­čem k roz­ho­do­vání, které části In­ter­net Ex­plo­reru je třeba op­ti­ma­li­zo­vat, nebo re­im­ple­men­to­vat. Na první po­hled se z nich po­zná, jestli stránka po­u­žívá velké množ­ství ja­vascrip­to­vých kniho­ven nebo po­u­žívá nad­měrné množ­ství kaská­do­vých stylů.

XmlHttpRequest

Další ob­lastí, která je před­mě­tem mě­ření, je dy­na­mické na­čítání dat ve formě XML a ná­sledná úprava stránky po­mocí Ja­vaScriptu. Mě­ření probíhá na zdro­jo­vých kó­dech ob­líbe­ných strá­nek pro sdílení krát­kých zpráv, so­ci­ál­ních sítích a apli­ka­cích jako Outlook Web Ac­cess a Of­fice Web Apps.

Uživatelské rozhraní

Neméně dů­le­žité je také mě­ření sa­mot­ného prostředí pro­hlí­žeče. Mezi nej­dů­le­ži­tější in­ter­akce patří ote­vření a za­vření pro­hlí­žeče, pře­pí­nání zá­lo­žek, změna ve­li­kosti klá­ves­nicí, myší či do­ty­kem a za­chá­zení s his­to­rií či ob­líbe­nými strán­kami.

Výběr vzorků

Velmi známé a často hodně pře­ce­ňo­vané testy, jako na­pří­klad Web­Kit SunSpi­der, jsou v la­bo­ra­toři také. Jsou uži­tečné pro tes­to­vání zá­těže kon­krétní vrstvy pro­hlí­žeče. Tyto testy však si­mulují cho­vání, které na běž­ném webu zřídka kdy nastane. Testy byly psány spíše s cílem uká­zat ne­do­statky kon­krét­ních pro­hlí­žečů a zdů­raz­nit je­jich roz­díly. Proto se klade dů­raz pře­de­vším na testy, které tes­tují pro­hlí­žeč jako ce­lek.

K výběru tes­to­va­cích strá­nek slouží zvláštní in­ter­ne­tový vyhle­dá­vač. Na strán­kách měří 68 různých uka­za­telů. Jedná se na­pří­klad o šířku a hloubku DOM stromu, slo­ži­tost CSS pra­vi­del, po­u­žité ja­vascrip­tové fra­meworky nebo ja­zy­kové od­liš­nosti (kterým se v Red­mondu říká in­ter­nati­o­nal fe­a­tu­res). Na zá­kladě to­hoto průzkumu webu se vybe­rou stánky, které slouží k tes­to­vání v la­bo­ra­toři. Tím se za­jiš­ťuje, že je výběr strá­nek do­sta­tečně re­pre­zen­tační.

Metriky

Vý­kon pro­hlí­žeče se nedá vyjá­d­řit jed­ním čís­lem. Testy, které se o to snaží, se vždy sou­středí jen na ur­či­tou ob­last. Cel­kem se měří přes 850 různých me­t­rik. Spo­lečně tvoří mo­za­iku vý­kon­nosti In­ter­net Ex­plo­reru. V první řadě se sleduje pět hlavních ob­lastí.

Sběr těchto dat z Win­dows probíhá přes ETW (Win­dows Event Tra­cing In­frastructure) a VM­Map (vir­tual and phy­si­cal me­mory analy­sis uti­lity). ETW sbírá kaž­dých 10 mi­k­ro­sekund snímky pamě­ťo­vého zá­sob­níku. S po­mocí de­bu­g­ging sym­bolů se dají poté jed­not­livé snímky pro­chá­zet zpětně.

Měření softwaru třetích stran

Hodně apli­kací po­u­žívá Tri­dent. Roz­šíření In­ter­net Ex­plo­reru jsou tes­to­vány tak, že jsou srov­ná­vány testy pro­hlí­žeče s do­plň­kem a bez něj. Při tom je kla­den dů­raz hlavně na dobu spuš­tění pro­hlí­žeče a dobu na­čítání stránky. Hodně do­plňků po­sílá po­ža­davky na ser­very bě­hem na­čítání stránky. Ně­které to však dě­lají syn­chronně, což lo­gicky zbrzdí její na­čítání. Ne­hledě na si­tuace, kdy je peč­livě na­sta­vený fi­rewall nebo je po­čítač of­fline.

Rychlejší prohlížeč pro všechny

Rych­lost pro­hlí­žeče je velmi dů­le­žitá. Peč­livé mě­ření In­ter­net Ex­plo­reru za­jiš­ťuje jeho kva­litu na­příč vel­kým množ­stvím hard­waru, na kte­rém běží. Data, která la­bo­ra­toř naměří, se ne­vyu­ží­vají jen k jeho vý­voji, ale přispí­vají k op­ti­ma­li­zaci Win­dows a k ná­vrhu rych­lej­šího hard­waru pro PC.

Člá­nek byl se­psán pro Tech­Net Blog CZ/SK.