reklama

Je sedmý testovací IE9 skutečně nejrychlejší?

Sedmá verze testovacího Internet Exploreru 9 Platform Preview překonala v benchmarku Sunspider veškerou konkurenci včetně Opery a Chromu. Má to ale jeden malý háček.

Zatímco Česká republika 17. listopadu slavila, v americkém Redmondu do světa vypustili v pořadí už sedmou testovací verzi Internet Exploreru Platform Preview. Už jen to způsobilo na síti menší pozdvižení, je to totiž teprve několik málo týdnů, co Microsoft představil šestou verzi. Co je tedy v sedmé verzi nového?

IE9 dosahuje nejvyššího skóre v testu Sunspider

Tou hlavní novinkou je zase rychlejší Javascript. Má to ale háček. Už před třemi týdny jsem varoval, že použití Sunspideru jakožto objektivního javascriptového benchmarku začíná být poněkud problematické. Test si sice v posledních letech získal obrovské renomé, jelikož díky své jednoduchosti nemá problém prakticky s žádným prohlížečem včetně starších verzí, na druhou stranu jsou ale rozdíly mezi jednotlivými hráči na trhu už spíše jen teoretické.

Klepněte pro větší obrázek
Jako vždy i tentokrát na stránkách Test Drive přibylo několik výkonostních testů

Sunspider měří výsledky nikoliv skrze nějaké abstraktní skóre, ale pomocí času. Rozdíly mezi posledními verzemi prohlížečů se pohybují v řádu desítek milisekund. Jakou relevanci pro běžné surfování na webu pak takový benchmark má? Odpovím si sám – skoro žádnou.

Jednoduše řečeno, současné prohlížeče jsou už natolik výkonné a inteligentní, že je pro ně Sunspider příliš pomalý a hloupý. A z této definice vzešlo i druhé pozdvižení. Pokud jste celou situaci okolo uvedení Platform Preview 7 sledovali, možná jste na síti objevili hromadu článků, podle kterých Microsoft podváděl a upravil svůj prohlížeč tak, aby dosáhl toho nejvyššího skóre. Tou hlavní novinkou je totiž skutečnost, že Internet Explorer 9 překonal v Sunspideru všechny ostatní. Včetně Opery a Chromu.

Klepněte pro větší obrázek
Sunspider zpracovaný autory oficiálního IE Blogu

Jak je to možné? Je IE9 skutečně tak špičkový? Pominu-li skutečnost, že i v předchozích verzích už byly rozdíly spíše teoretické (řádově desítky milisekund), je tu ještě něco jiného – takzvaný „dead code“.

Dead code je v počítačové hantýrce takový kód, který sice vytěžuje procesor, ale nemá žádný smysl. Vypůjčím si nyní krátkou ukázku přímo z IE Blogu:

function spocitej(a, b) {
  var x;
  for(var i = 0; i < 10000; i++) {
    x = a + b;
  }
  return x;
}

Pokud jste se s programováním setkali leda tak na střední škole, jen připomenu, že funkce výše má na vstupu dvě proměnné „a“ a „b“. Uvnitř je pak cyklus, který 10 000× zopakuje příkaz x = a + b. Sečte tedy hodnoty proměnných „a“ a „b“ a výsledek uloží do proměnné „x“. Co je na tomto kódu divného? Je to typická ukázka dead code, hodnota proměnné „x“ totiž bude pořád stejná. Jinými slovy tedy takový skript zcela zbytečně 10 000× spočítá to, co by spočítal hned na začátku při prvním průchodu cyklem.

Ale jenom díky zastaralému Sunspideru

Přesně tímto způsobem ovšem funguje většina javascriptových benchmarků. Ty mnohonásobně opakují nějaký jednoduchý úkon, a pak změří čas, jak dlouho to celé trvalo. Benchmarky zpravidla negenerují nic smysluplného, pouze se snaží prohlížeč co nejvíce zatížit. Pokud test spustíte na stejném počítači (se stejným procesorem), ale v různých prohlížečích, zjistíte, který prohlížeč takový vlastně úplně zbytečný Javascript spočítá rychleji a kterému to bude naopak trvat nejdéle. Na stejném principu nakonec funguje i Sunspider.

Takže kde je problém? Kdyby byl IE9 hloupý (nebo prostě normální), jednoduše by si nevšímal, že 10 000× zpracovává jeden a tentýž příkaz a zbytečně by dál zatěžoval procesor. IE9 a zvláště nový Platform Preview 7 ale pokročil právě v tomto bodě, ještě před interpretací Javascriptu tedy kód projde a pokusí se v něm najít podobný mrtvý neefektivní balast. V našem konkrétním případě by tedy IE9 zareagoval třeba tím způsobem, že by funkci proměnil asi takto:

function spocitej(a, b) {
  var x;
  x = a + b;
  return x;
}

Zrušil by tedy zcela zbytečný cyklus a nahradil ho pouze jediným příkazem, který do proměnné „x“ uloží součet proměnných „a“ a „b“. Procesor v takovém případě nebude zbytečně vytěžovaný a Javascript se zpracuje mnohem rychleji. Rychleji se spočítá i benchmark a IE9 tedy logicky získá vyšší skóre.

Inteligentní jádro

Teď je tedy otázka, jaký způsob práce je lepší. Osobně jsem přesvědčený, že je optimalizace dead kódu mnohem přínosnější, než zpracovávat kód tak jak je a nevšímat si, že mnohdy zpracovává úplně zbytečnosti. Kdyby Microsoft do IE9 vsadil výjimku pro Sunspider a další benchmarky, teprve by si mohla komunita začít stěžovat, že zde někdo nekale optimalizuje výsledky pro Sunspider a ty druhé.

Kdo je dnes tedy nejrychlejší? Kouzlo grafu, který zveřejnil i IE Blog, spočívá v tom, že Sunspider tuto odpověď už nezná. Než se prosadí někdo jiný, nebo jej autoři upraví pro potřeby dnešní doby, asi by bylo na místě si vybrat úplně jiný systém testování.

Tím nejlepším bude pochopitelně vždy reálná uživatelská zkušenost, jen tak totiž poznáte, co vám vyhovuje a jak si prohlížeč rozumí se skutečným každodenním webem.

Takže Sunspideře! Sloužil jsi dobře, možná ale nadešel čas, říci sbohem.

stáhnout program Internet Explorer 9 Preview 7 Licence: freeware, 17 MB
Autor: Microsoft
Web programu: ie.microsoft.com


Témata článku: Software, Technologie, Microsoft, Prohlížeče, Web, Programování, Internet Explorer, Internet Explorer 9

20 komentářů

Nejnovější komentáře

  • mido0258 22. 11. 2010 23:38:19
    že IE9 vyhazuje balast kód no k tomu reknu jenom jednu vec kdybych tomu...
  • Pety 21. 11. 2010 20:49:24
    IMHO je to v naprostém pořádku - je to problém benchmarku, ten je nutno...
  • hustodemon 20. 11. 2010 12:03:51
    mno...sice to zni zajimave, ale pochybuji, ze budou mit odvahu ten...
reklama
Určitě si přečtěte

Microsoft: Zbavte se už konečně zastaralých a děravých Windows 7

Microsoft: Zbavte se už konečně zastaralých a děravých Windows 7

** Microsoft pomalu začíná kritizovat svůj nejpopulárnější OS ** Chce konečně dostat podniky na Desítky ** Bezpečnostní podpora Sedmiček vydrží ještě necelé tři roky

17.  1.  2017 | Jakub Čížek | 405

Český státní blacklist už funguje. Ministerstvo financí se pochlubilo s detaily

Český státní blacklist už funguje. Ministerstvo financí se pochlubilo s detaily

** Dva týdny po Novém roce zajím zeje prázdnotou ** Ministerstvo vydalo metodický pokyn ** Takhle to bude fungovat v praxi

16.  1.  2017 | Jakub Čížek | 49

8 produktů, o kterých byste neřekli, že nesou značku Apple

8 produktů, o kterých byste neřekli, že nesou značku Apple

** Věděli jste, že Apple vyvinul celkem 45 modelů tiskáren? ** ** Monitor na výšku, plotter nebo herní konzole - to vše měl Apple ve své nabídce ** Většinu z těchto produktů pohřbil Steve Jobs

19.  1.  2017 | Stanislav Janů | 38

Opera Neon: Takto prý bude vypadat prohlížeč budoucnosti. Chcete to?

Opera Neon: Takto prý bude vypadat prohlížeč budoucnosti. Chcete to?

** Opera představila Neon ** Koncepci prohlížeče budoucnosti ** Připomíná Chrome OS

16.  1.  2017 | Jakub Čížek | 35


Aktuální číslo časopisu Computer

99 nejlepších programů pro váš počítač

Zvykejte si na umělou inteligenci

Velké testy PC zdrojů a gamepadů

Alternativní zdroje energie

reklama
reklama