Dajbych.net


Testovací laboratoř pro Internet Explorer

, 8 minut čtení

Posled­ních pět let se v Red­mondu pos­tupně stavěla lab­o­ra­toř pro testování spoleh­livosti a výkonu In­ter­net Ex­ploreru. Dnes patří mezi ne­j­sofistiko­vanější nástroje pro měření webu. Denně v ní proběhne na 200 testů výkonu In­ter­net Ex­ploreru, provede se 5,7 mil­ionu měření a shromáždí se 480 GB dat. Měření probíhá každých 100 nanosekund. Pro kaž­dou změnu ve zdro­jovém kódu IE je tak známé, jaký měla dopad na jeho výkon.

Lab­o­ra­toř je miniaturní verze In­ter­netu. Sk­ládá se z více jak 140 strojů ne­jrůznějších typů. Obsahuje desk­topy, note­booky, net­booky a tablety s pro­ce­sory ar­chitek­tury x86, x64 i ARM. Zahr­nuje we­bové servery, DNS servery, routery a emulá­tory sítí, které mají za úkol simulo­vat různé typy připo­jení. Síť umožňuje od­s­tranit všechny zdroje náhody. Všechny prováděné testy mohou být de­ter­min­i­stické a lze je tedy kdyko­liv zopako­vat.

Lab­o­ra­toř využívá Win­dows Per­for­mance Tools (WPT), díky kterému je možné spustit ste­jné testy a porov­nat výsledky. Jdou spustit pro různé proh­lížeče, pan­ely nástrojů, an­tivi­rové pro­gramy i další pro­gramy třetích stran. WPT dokáže měřit vše od zátěže CPU a GPU až po účin­nost cache pamětí, vytížení sítě a využívání paměti. To vše za účelem za­jis­tit, aby byly hard­ware, ovladače, Win­dows a In­ter­net Ex­plorer vzá­jemně op­ti­mal­i­zovány. Je­den test zabere okolo 6 hodin a vytvoří 22 GB dat. In­fras­truk­turu lab­o­ra­toře tvoří tři celky – síť a servery, klienty a měřící tech­nika.

IE

Jak se měří

Webové servery

Servery s we­bovými stránkami ob­sahují kopie skutečných stránek z In­ter­netu. Je­jich zdro­jový kód je jen upraven tak, aby byl de­ter­min­i­stický. Napřík­lad volání funkce Math.Ran­dom je nahrazeno stat­ickou hod­no­tou. Dy­nam­ické URL jsou nahrazeny stat­ickými. We­bová ap­likace je im­ple­men­tována tak, že se z URL vytvoří hash, po­dle kterého se doh­ledá stat­ický HTML kód, který je nakešován v paměti. Každý server má 16 jader a 16 GB RAM. Kromě toho ob­sahuje lab­o­ra­toř ještě samostatné servery, na kterých běží Out­look Web Ac­cess a Of­fice Web Apps.

Emulátory sítě

Na něk­terá síťová spo­jení jsou ap­likovány hard­warové emulá­tory, které zpožďují a mění pořadí paketů. V závis­losti na konkrétní kon­fig­u­raci tak emu­lují 56k, DSL a ka­belové modemy či WAN a 4G sítě. Přestože je toto řešení složitější a dražší, než použití soft­warového řešení či proxy, je to jed­iný způ­sob, jak přesně měřit výkon. Proh­lížeč má omezení na počet součas­ných připo­jení k proxy, takže by to ovlivnilo měření. Soft­warový emulá­tor na klien­tovi by zase využí­val jeho výkon a zne­hod­no­co­val tak měření, obzvláště pak na zařízeních napá­jených z ba­terie.

Klienti

Lab­o­ra­toř ob­sahuje 120 strojů, na který běží ne­jnovější sta­bilní build In­ter­net Ex­ploreru z TEST branche (na TFS je ještě DEV a MAIN branch). Jed­notlivé stroje se velmi liší a zas­tupují celou škálu zařízení – tablety a net­booky počí­naje a výkon­nými x64 desk­topy konče. Něk­teré mají in­te­grovanou grafickou kartu, jiné ne.

IE

Kli­enti jsou sdruženi do skupin. V každé skupině jsou počí­tače s přesně ste­jným hard­warem. Když se totiž vyskytne porucha, po výměně vadné kom­po­nenty za novou do­jde téměř vždy ke zrych­lení stroje. Když se měří s přes­ností na 100 nanosekund tak i pár taktů dokáže ovlivnit výsledek. Pokud k tomu do­jde, je počí­tač ze skupiny od­s­traněn.

Pokud se měří výkon grafiky IE, využívá se strojů z druhé lab­o­ra­toře pro měření grafického výkonu Win­dows, která ob­sahuje téměř každý vy­robený typ chipsetu. Tato lab­o­ra­toř je neocen­itelná při vyšetřování chyby napříč jed­notlivými chipsety a verzemi ovladačů grafické karty.

IE

Měřící technika

Měřící data jsou ne­jprve nashromážděna. Je­jich roz­bor probíhá na samostat­ných serverech HP Pro­Liant DL160 G6. Má 16 jader a 16 GB RAM. Tisíce metrik, které se vy­poč­tou, jsou nakonec uloženy na SQL Server. Ten shro­mažďuje 6 mil­ionů měření vytvořených každým dnem. Běží na 24 já­drovém serveru s 64 GB RAM.

IE

Co se měří

Načítání obsahu

V první řadě se měří nav­i­gace z jedné stránky do druhé. To zahr­nuje měření napříč je­denácti vrst­vami In­ter­net Ex­ploreru, které společně za­jišťují načtení nové stránky.

IE

Pečlivým měřením na všech těchto vrstvách vznikají takovéto statis­tiky. Jsou klíčem k rozhodování, které části In­ter­net Ex­ploreru je třeba op­ti­mal­i­zo­vat, nebo reim­ple­men­to­vat. Na první poh­led se z nich pozná, jestli stránka používá velké množství javascrip­tových kni­hoven nebo používá nad­měrné množství kaská­dových stylů.

XmlHttpRequest

Další oblastí, která je před­mětem měření, je dy­nam­ické načítání dat ve formě XML a následná úprava stránky po­mocí JavaScriptu. Měření probíhá na zdro­jových kódech oblíbených stránek pro sdílení krátkých zpráv, so­ciál­ních sítích a ap­likacích jako Out­look Web Ac­cess a Of­fice Web Apps.

Uživatelské rozhraní

Neméně důležité je také měření samot­ného prostředí proh­lížeče. Mezi ne­jdůležitější in­ter­akce patří otevření a zavření proh­lížeče, přepínání záložek, změna ve­likosti kláves­nicí, myší či dotykem a zacházení s his­torií či oblíbenými stránkami.

Výběr vzorků

Velmi známé a často hodně pře­ceňo­vané testy, jako napřík­lad We­bKit SunSpi­der, jsou v lab­o­ra­toři také. Jsou užitečné pro testování zátěže konkrétní vrstvy proh­lížeče. Tyto testy však simu­lují chování, které na běžném webu zřídka kdy nastane. Testy byly psány spíše s cílem ukázat ne­dostatky konkrét­ních proh­lížečů a zdůraznit je­jich rozdíly. Proto se klade důraz přede­vším na testy, které tes­tují proh­lížeč jako celek.

K výběru testo­vacích stránek slouží zvláštní in­ter­ne­tový vyh­ledá­vač. Na stránkách měří 68 různých ukazatelů. Jedná se napřík­lad o šířku a hloubku DOM stromu, složi­tost CSS pravidel, použité javascrip­tové frame­worky nebo jazykové odlišnosti (kterým se v Red­mondu říká in­ter­na­tional fea­tures). Na zák­ladě to­hoto průzkumu webu se vy­berou stánky, které slouží k testování v lab­o­ra­toři. Tím se za­jišťuje, že je výběr stránek dostatečně reprezen­tační.

Metriky

Výkon proh­lížeče se nedá vyjádřit jed­ním číslem. Testy, které se o to snaží, se vždy soustředí jen na urči­tou oblast. Celkem se měří přes 850 různých metrik. Společně tvoří mozaiku výkon­nosti In­ter­net Ex­ploreru. V první řadě se sleduje pět hlavních oblastí.

Sběr těchto dat z Win­dows probíhá přes ETW (Win­dows Event Trac­ing In­fras­truc­ture) a VMMap (vir­tual and phys­i­cal mem­ory anal­y­sis util­ity). ETW sbírá každých 10 mikrosekund snímky paměťového zá­sob­níku. S po­mocí de­bug­ging sym­bolů se dají poté jed­notlivé snímky procházet zpětně.

IE

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

Hodně ap­likací používá Tri­dent. Rozšíření In­ter­net Ex­ploreru jsou testovány tak, že jsou srovnávány testy proh­lížeče s do­plňkem a bez něj. Při tom je kladen důraz hlavně na dobu spuštění proh­lížeče a dobu načítání stránky. Hodně do­plňků posílá poža­davky na servery během načítání stránky. Něk­teré to však dělají syn­chronně, což log­icky zbrzdí její načítání. Neh­ledě na si­tu­ace, kdy je pečlivě nas­tavený fire­wall nebo je počí­tač of­fline.

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

Rychlost proh­lížeče je velmi důležitá. Pečlivé měření In­ter­net Ex­ploreru za­jišťuje jeho kval­itu napříč velkým množstvím hard­waru, na kterém běží. Data, která lab­o­ra­toř naměří, se nevyuží­vají jen k jeho vývoji, ale přis­pí­vají k op­ti­mal­izaci Win­dows a k návrhu rych­le­jšího hard­waru pro PC.

Článek byl sep­sán pro Tech­Net Blog CZ/SK.