V rámci seriálu Moderní webové prohlížeče jsme se v posledních dvou dílech věnovali rychlému přístupu k webovému obsahu. Ať už z hlediska schopností prohlížeče hledat informace díky provázání s webovými vyhledávači, nebo z hlediska rychlého přístupu na hojně navštěvované anebo oblíbené weby. Tentokrát se zaměříme na výkon jako takový.
Google zavelel: za rychlejší JavaScript!
V první dekádě tohoto století byla prioritním tématem pro tvůrce webových prohlížečů bezpečnost. Bylo to logické, protože naprostou většinu trhu ovládal Internet Explorer 6 od Microsoftu, který ale v té době fakticky ukončil vývoj svého prohlížeče navzdory četným bezpečnostním nedostatkům. Bezpečnost tedy byla hlavním argumentem, proč přejít na jiný prohlížeč.
Bezpečnost je stále důležitá, ovšem když Google na sklonku léta 2008 představil po letitém zarputilém odmítání svůj vlastní webový prohlížeč Google Chrome, dostalo se do popředí jiné téma: výkon. Google Chrome zaujal především výkonem svého enginu V8 pro zpracování kódu v jazyce JavaScript.
Práce s v té době pozvolna nastupujícími webovými aplikacemi, ale i moderními weby s řadou dynamických prvků byla rázem o poznání rychlejší a příjemnější. Konkurence musela srovnat krok. Ne všem prohlížečům, kterým se v rámci seriálu dlouhodobě věnujeme, se to ale povedlo hned. Relativně rychle se výrazného posunu k lepšímu dočkali uživatelé prohlížečů Mozilla Firefox a Opera.
Rostoucí výkon prohlížečů a nově implementované webové technologie pozvolna otevírají prostor pro hraní atraktivních her napsaných pouze s pomocí webových technologií.
Horší to měli uživatelé Internet Exploreru. V té době (druhá polovina roku 2008, úvod roku 2009) již delší dobu opět běžel další vývoj prohlížeče Microsoftu, ovšem ovšem ve všech testech výkonu zpracování kódu v jazyce JavaScript zůstával daleko za konkurencí. Internet Explorer 8 v roce 2009 sice přinesl kompletně přepsané jádro Trident, ale výkon prohlížeče při zpracování JavaScriptu zůstal na velmi chabý ve srovnání s konkurenčními prohlížeči.
Microsoft s tím měl dost potíží, protože mnoho významných webových stránek a webových služeb doporučovalo přechod na tzv. alternativní prohlížeče právě ve jménu výkonu. Média chrlila jeden více či méně relevantní test výkonnosti za druhým, ovšem ve všech Internet Explorer propadal. Takže i z marketingového hlediska byl výkon v této oblasti problémem.
Navíc sám Microsoft potřeboval od prohlížeče solidní výkon, aby mohl svým uživatelům nabídnout přijatelný komfort u svých vlastních nově nastupujících webových aplikací v čele s Office Web Apps, kde přenesení konceptu Ribbon z desktopového do webového prostředí dávalo zpočátku zabrat i mnohem výkonnějším prohlížečům než byl jeho Internet Explorer.
Microsoft dohnal náskok až s příchodem Internet Exploreru 9 v roce 2011, který přinesl nový engine Chakra pro zpracování kódu v jazyce JavaScript. To už ale nemuselo zajímat tvůrce projektu Maxthon. Ten začínal ještě pod názvem MyIE jako pouhá grafická nadstavba pro Internet Explorer, resp. jeho technologie hluboce zakořeněné do MS Windows.
Dnešní Maxthon je již plnohodnotným webovým prohlížečem používajícím jádro WebKit. Pod MS Windows ovšem stále umí přepnout na jádro Trident prohlížeče Internet Explorer.
Maxthon tak nejen výkonnostně byl závislý na tom, co nabídne Microsoft. V roce 2010 ovšem s příchodem třetí generace přišel zlom, kdy se Maxthon stal plnohodnotným webovým prohlížečem využívajícím technologie open source projektu WebKit. Výkonnostně se tak mohl začít rovnat ostatním prohlížečům, ještě než se Microsoft stihl vydat Internet Explorer 9.
Hardwarová akcelerace: aby grafika nezahálela
Takřka „magickým zaklínadlem“ pro výkon prohlížečů se zhruba na počátku druhé dekády tohoto století stala hardwarová akcelerace zpracování kódu webů a jejich vykreslení. Myšlenka je jednoduchá: grafická karta (resp. GPU) v moderních počítačích nabízí zajímavý výkonnostní potenciál, aniž by muselo jít nutně o herní stroj, tak proč ji nechat lelkovat?
Nejrůznější software, který tak dříve nečinil, svými úkony zaměstnávat namísto procesoru (CPU) grafickou kartu resp. grafiku (GPU), aby zužitkoval výkonnostní potenciál, který sice byl k dispozici, ovšem mimo oblast zábavy zůstával nevyužit. Webové prohlížeče nezůstaly stranou, ovšem podpora hardwarové akcelerace přicházela průběžně a potýkala se s mnoha problémy.
Ne na všech počítačích je hardwarová akcelerace dostupná. Důvodem její nedostupnosti mohou být staré ovladače grafiky.
Mezi průkopníky patří Maxthon, který podporu hardwarové akcelerace v první generaci nabídl již ve své trojkové verzi v roce 2010. Další prohlížeče se z pohledu ostrých verzí přidaly v roce 2011, kdy s rozdílem několika týdnů či dnů přinesly podporu hardwarové akcelerace Google Chrome, Mozilla Firefox a Internet Explorer. Nikdo nechtěl zůstat pozadu.
Microsoft však vsadil výhradně na svou vlastní technologii Direct2D příchozí spolu s Windows 7 a zpětně uvolněnou i pro Windows Vista. Internet Explorer 9 vydaný v roce 2011 tak sice přinesl podporu hardwarové akcelerace, ovšem už ne uživatelům Windows XP. Microsoft zarytě odmítal, že chce posílit efekt tzv. morálního zastarání Windows XP.
Windows XP byla v té době, tedy v březnu 2011, s podílem 47,32 % jedničkou na trhu, jak uvádí StatCounter. Nástupnická Windows Vista a Windows 7 nedokázala v té době Windows XP přeskočit na pomyslném žebříčku ani při sečtení svých podílů (Windows 7 dosahovala na 30,6 % a Windows Vista jen na 13,66 %). Microsoft však trval na technologických důvodech neposkytnutí o poznání výkonnějšího prohlížeče pro jeho vlastní trh ovládající systém.
Konkurenční prohlížeče si ovšem našly cestu, jak hardwarovou akceleraci nabídnout i pod Windows XP bez Direct2D ((nesporně i vzhledem ke zmíněným statistickým údajům)). Mozilla Firefox či Google Chrome díky OpenGL podporují hardwarovou akceleraci nejen od Windows XP výše, ale i pod různými linuxovými distribucemi a také na tržně druhé nejvýznamnější platformě, tedy OS X od Applu.
Černou ovcí z hlediska podpory hardwarové akcelerace zůstává Opera. V době, kdy do výbavy konkurenčních prohlížečů mířila hardwarová akcelerace, Opera sázela na softwarovou akceleraci díky grafické knihovně VEGA. Ve své době se soudobým rivalům přesto mohla rovnat, ovšem práce na hardwarové akceleraci byly nutné pro zachování konkurenceschopnosti i v budoucnu.
Společnost Opera Software ve svém prohlížeči slibovala vůbec nejlepší hardwarovou akceleraci, kterou kdy kdo ve webovém browseru nabídl. Dosud však zůstalo jen u experimentální implementace, kdy v ostré verzi prohlížeče je hardwarová akcelerace ve výchozím nastavení raději vypnuta. Teď už Opera Software o jejím dalším vývoji mlčí.
Vlastní hardwarová akcelerace prohlížeče Opera již zřejmě navždy zůstane jen v experimentálním stádiu s volitelnou aktivací na vlastní riziko každého uživatele.
Logicky, protože chce přejít na Chromium a jeho nové jádro Blink. Spekuluje se, že jedním z důvodů přechodu na Chromium jsou právě problémy s vyladěním hardwarové akcelerace. Ovšem ty neměla jen společnost Opera Software. Hlášení problémů přichází z táborů tvůrců i všech konkurenčních prohlížečů. Jednou z častých příčin problémů v reálném provozu jsou staré anebo nekvalitní ovladače ke grafice.
Nové technologie pro vyšší výkon
Tvůrci webových prohlížečů hledají i další cesty, jak přímo či nepřímo zlepšit výkon. Pro moderní webové aplikace protokol HTTP již není plně vyhovující kvůli malé flexibilitě. Řešením může být třeba experimentální protokol SPDY, jeden z výsledků open source projektu Chromium. Jeho podporu postupně zavedly prohlížeče Google Chrome, Mozilla Firefox a naposledy Opera.
Jelikož za SPDY prakticky stojí Google, jistě není překvapením, že jeho podporu kompatibilním prohlížečům nabízí u řady svých webových služeb jako je třeba Gmail, dnes největší e-mailová služba na světě. Přidala se i sociální síť Twitter. Vzhledem k relativně snadnému zavedení podpory SPDY do rozšířeného webového serveru Apache má SPDY světlou budoucnost.
Projekt Chromium jako řešení nedostatků běžného HTTP přišel s experimentálním protokolem SPDY, který vedle klíčových služeb Googlu ze známých webů podporuje např. Twitter.
Další technologií, která se snaží řešit nedostatky HTTP z pohledu nároků dnešních webových aplikací na plynulou a rychlou komunikaci mezi klientem a serverem, jsou pak WebSockets z širšího ranku HTML 5. Dnes ji podporují všechny prohlížeče, kterým se v rámci seriálu dlouhodobě věnujeme, tedy Internet Explorer, Mozilla Firefox, Google Chrome, Opera a Maxthon.
Dlužno však dodat, že Internet Explorer podporuje WebSockets až ve své současné desítkové verzi. Ta přišla loni na podzim s Windows 8 a odvozenými systémy. Ze starších systémů se prohlížeče Internet Explorer 10 dočkala jen Windows 7. Uživatelé předešlých systémů od Microsoftu se od něj prohlížeče s podporou WebSockets (a řady dalších relativních novinek) nedočkali a nedočkají.
Maxthon, jehož ostrá verze je dlouhodobě nejdále v podpoře HTML 5, samozřejmě WebbSockets podporuje. Stejně jako rivalové, ovšem Internet Explorer jen po Windows 7 a vyššími.
Některé prohlížeče pak nabízejí své vlastní specialitky pro dosažení vyššího výkonu. Vyjmenovat všechny je nemožné v rámci jednoho článku, ale připomeňme si alespoň některé. Jako první se nabízí funkce Opera Turbo z prohlížeče Opera. Při jejím aktivování Opera všechen obsah načítaný přes HTTP stahuje ze svého cloudu v již komprimované podobě.
Služba Opera Turbo díky kompresi při načítání webových stránek stahuje méně dat, takže je může rychleji zobrazit.
Výsledkem je, že k uživateli putuje menší objem dat (úspora prý může být až 90 procent), který se rychleji stáhne. Rozdíl je citelný hlavně při pomalém připojení k Internetu. Službu Opera Turbo je pak možné volitelně nechat automaticky vypínat a zapínat dle aktuální rychlosti dostupného připojení k Internetu. Třeba při pendlování mezi GPRS/EDGE a UMTS na cestách s přenosným počítačem.
Google Chrome zase využívá předběžné načítání odkazovaných stránek ze stránky aktuální, na které by uživatel pravděpodobně mohl chtít přejít. Pokud pak uživatel skutečně klikne na odkaz, prohlížeč si podstatnou část své práce udělal už dopředu. Tato funkce jde dál, než klasický DNS prefetching, který podporují Internet Explorer, Mozilla Firefox, Opera i Maxthon.
Předběžné načítání v prohlížeči Google Chrome jde mnohem dále než běžný DNS prefetching podporovaný konkurencí.
Maxthon a Opera mohou dosáhnout rychlejšího načítání webů díky svým funkcím pro blokování načítání reklamy na webových stránkách, kterou jsou do těchto prohlížečů integrovány coby jejich nativní funkce. Využít ji lze pro blokování i nejrůznějších sdílených skriptů (typicky analytických služeb a sociálních sítí), které mnohdy zdržují načtení samotného webu.
V prohlížeči Internet Explorer lze téhož dosáhnout díky funkci Ochrana proti sledování. Kromě černých listin blokujících skripty sloužící k stopování a monitorování pohybu uživatelů lze této bezpečnostní funkce lehce zneužít k blokování libovolných skriptů.
Internet Explorer má funkci Ochrana před sledováním, kterou lze využít i k blokování načítání reklamy nebo skriptů, které zdržují načítání pro uživatele důležitějšího obsahu.
Mozilla Firefox se zase čerstvě dočkal tzv. chytrého načítání webových stránek určujícím pořadí načítání různých typů dat za účelem rychlejšího načtení webů. A podobně bychom mohli pokračovat. Různých „zlepšováků a vychytávek“ pro vyšší výkon nabízejí prohlížeče opravdu hodně, byť jimi jednotlivě ušetřený čas je mnohdy jen v řádu milisekund.
Bolístky prohlížečů a pokusy o autodiagnostiku
Prohlížeč, který z hlediska celkového výkonu má nejhorší pověst, je bezesporu Mozilla Firefox. Tvůrci prohlížeče průběžně přinášejí nejrůznější úpravy, ale pořád se Mozilla Firefox své špatné pověsti zbavit nemůže a dlužno dodat, že kritika není jen výsledkem setrvačnosti. Tvůrci prohlížeče dlouho argumentovali, že za často zmiňované problémy s pamětí pomohou špatně napsaná rozšíření.
Nicméně bič na paměťové nároky některých nekvalitních rozšíření uživateli očekávaný efekt nepřinesl. A podobně je tomu prakticky se všemi úpravami, nejen co se spotřeby operační paměti týče, ale i třeba rychlosti startu prohlížeče. Ne, že by úpravy efekt neměly, ale zázračné pokropení živou vodou se dosud nekonalo. Škoda.
Nyní Mozilla do nejbližší verze Firefoxu (21) chystá nový diagnostický nástroj, který má reagovat na neobvyklé výkonnostní a rychlostní problémy (např. pomalý start prohlížeče). Při jejich detekování uživatele nasměruje na stránky technické podpory, kde budou poučeni o nejčastějších příčinách problémů s výkonem a jejich řešení.
Nicméně je dost dobře možné, že Mozilla uvázala kámen kolem krku svému prohlížeči sama. Jádro Gecko totiž slouží i k vykreslení jeho uživatelského rozhraní. Prohlížeč K-Meleon již před lety ukázal, že coby nativní aplikace pro MS Windows může browser používající vykreslovací jádro Gecko běžet podstatně rychleji, svižněji…
Vývoj prohlížeče K-Meleon však ustal, ale Mozilla si dost možná vzala inspiraci. Loni mobilní Firefox pro Android dostal nativní uživatelské rozhraní napsané v Javě. Na výkonu to bylo hned znát oproti dobám, kdy si své uživatelské rozhraní vykresloval sám. Třeba se někdy v budoucnu Mozilla vydá podobným směrem i na podporovaných platformách osobních počítačů.
Co se týče problémů s vysokými paměťovými nároky, tak těmi po nějaké době trpí prakticky všechny prohlížeče. U některých se to projevuje dříve (Mozilla Firefox, Google Chrome), u některých později (Internet Explorer, Maxthon, Opera). Problémy se objevují zejména u neustále běžících relací, kdy se počítač nevypíná, ale pouze přepíná do úsporného režimu či nějaké jeho obdoby.
Obdobné problémy ovšem řeší také uživatelé, kteří sice svůj počítač vypínají, ovšem po naběhnutí operačního systému si nechají obnovit (nebo jim je automaticky obnovena) předchozí relace prohlížeče. Jenže to není jen otázka prohlížečů, ale i správy operační paměti v operačních systémech. Jde o problém hodný hlubšího rozboru, na který nyní není prostor.
Dobrou zprávou je, že tvůrci prohlížečů v posledních letech zvýšili důraz na diagnostiku výkonu. Vedle sbírání anonymních dat pro analýzu nabízejí určité diagnostické nástroje pro odstranění problémů i uživatelům. Mozilla nabídla diagnostickou stránku about:memory pro přehled využití operační paměti. Nicméně koncový uživatel z něj moc moudrý nebude. Totéž lze říci o stránce, která v Opeře indikuje vytížení procesoru.
Prohlížeč Mozilla Firefox umí poskytnout informace o využití operační paměti, ovšem ze stránky about:config mnoho jeho běžných uživatelů příliš moudrých rozhodně nebude.
Internet Explorer umí upozornit na plug-iny, které brzdí jeho výkon. Orientačně vypočítá, jak moc velký negativní dopad mají na jeho rychlost. Uživateli srozumitelně informuje a nabídne mu řešení na několik kliknutí. Je to zatím jedna z mála oblastí, které jsme se zatím v seriálu věnovali, kde by si konkurenční prohlížeče měly vzít od Internet Exploreru inspiraci, jak vytvářet diagnostické nástroje pro problémy s výkonem, které poslouží nejširší uživatelské základně.
Je nějaký „Michael Schumacher“ mezi prohlížeči?
Sečteno a podtrženo, výkon u moderních prohlížečů hraje velkou roli a za poslední roky byly implementovány mnohé funkce a technologie, které výkon posilují. Jenže zároveň rostou nároky, takže je třeba další vývoj. Hledají se nové cesty, jak vytěžit maximum ze současného hardwaru. I proto začínají práce na jádru Blink a Mozilla experimentuje s novým jádrem Servo. Hledají se také nové technologie za ty, které již neodpovídají dnešním nárokům.
Různé prohlížeče v jednotlivých oblastech výkonu vykazují různou progresi zlepšování. Těžko tedy říci, který z prohlížečů si vede nejlépe v rychlostních závodech. Google Chrome, přestože už si uživatelé na jeho spotřebu operační paměti stěžují skoro stejně často jako u Mozilla Firefoxu? Internet Explorer díky prolnutí s mateřskou platformou, ovšem za cenu toho, že podporuje jen její nejnovější verze?
Je to do značné míry individuální. Každému prohlížeči lze trochou ladění dopomoci k vyššímu výkonu stejně, jako mu lze naopak při výkonnostním rozletu přistřihnout křidélka. Výkon prohlížečů je samozřejmě také otázkou každého počítače a jeho výbavy, použitém systému a jeho stavu atd.
Proto nejsou v článku žádné srovnávací testy, které by ve výsledku byly přinejlepším odrazem výkonu prohlížečů na konkrétním modelu počítače či konkrétní počítačové sestavě při dané internetové přípojce. Všeobecná vypovídající hodnota by byla pramalá. Nabízí se tedy otázka směrem k vám, čtenářům: s jakým prohlížečem máte nejlepší zkušenosti z hlediska výkonu?
Poznámka: V článku jsou zohledněny ostré verze prohlížečů a jejich funkce aktuální k datu vydání článku, tedy: Internet Explorer 10, Mozilla Firefox 20, Google Chrome 26, Opera 12.15 a Maxthon 4.0.5