Vývojáři Mozilly: IE9 podváděl v testu rychlosti

19. 11. 2010

Sdílet

 Autor: Redakce

Včera jsme vás upozornili na novou sedmou Platform Preview verzi Internet Exploreru 9, které se povedlo získat první místo v testu WebKit SunSpider JavaScript Benchmark a předehnat tak i Chrome, který patří mezi ty nejlepší v oboru „rychlost“.

Jeden z vývojářů z Mozilly si však všiml, že jedna z částí testu je dokončena prakticky okamžitě a malou úpravou kódu testu způsobil, že se skóre Internet Exploreru 9 zhoršilo, což samozřejmě oznámil formou reportu o chybě. Toto vyvolalo řadu nařčení, že vývojáři podváděli a JavaScriptový engine Internet Exploreru 9 speciálně upravili pro tento test, aby získali lepší skóre.

Ukazuje se však, že se o žádné vědomé podvádění nejedná. Internet Explorer 9 totiž při zpracovávání JavaScriptu vyhledává takzvaný mrtvý kód, který sice něco může dělat, ale pro zbytek programu to není nijak užitečné. Odstraněním takového kódu při zpracování se tak zpracovávaný program zrychlí, přičemž právě zmíněná část testu, manuálně provádějící výpočty goniometrických funkcí, aniž by tyto výsledky nijak použila, tomto případu odpovídá, a byla tak odstraněna.

Protože je však detekce mrtvého kódu poměrně složitá a může se stát, že daný kód mrtvý vůbec není a jeho odstraněním by se tak narušil správný běh programu, detekuje jej IE s velkou opatrností, přičemž i malá změna, která nijak běh programu neovlivní, způsobí, že jej pro jistotu neodstraní. Dalšími experimenty se odhalilo, že některé drobné modifikace odstranění kódu zabrání, některé však ne.

bitcoin školení listopad 24

Skóre jednotlivých prohlížečů je navíc dnes už velmi vyrovnané a liší se minimálně, vývojáři tedy s největší pravděpodobností nijak nepodváděli. Byli však nařčeni z něčeho horšího: to co se z normálního hlediska může v jazyce JavaScript jevit jako mrtvý kód, může být však důležité pro některé speciální programové postupy a odstraněním se tak program poškodí a nebude fungovat korektně, což se danému vývojáři z Mozilly povedlo předvést. Internet Explorer 9 je naštěstí stále ve vývoji, takže lze očekávat opravu takovýchto chyb a další vylepšení v optimalizaci.

Zdroj: Ars Technica