Zprávy o rychlejším vykreslování jsou vždycky vítány, tentokrát je v tom však malý háček. K němu se ovšem dostaneme. Začněme tím, že Chrome dostal do vínku nejméně dvě metody, díky nimž zvládá vykreslovat stránky rychleji. Ty nám napovídají, že způsobů, jak proces urychlit, mnoho nezbývá, a proto se Google pouští do již poměrně zajímavých a z určitého pohledu extrémních metod – v dobrém slova smyslu.
Vykreslují se jen změněné prvky
Prohlížeč dnes jednoduše řečeno ví, které prvky na stránce se mění. Vykresluje pak pouze změněné prvky, zatímco zbytek vykresleného obrazu zůstává stejný – a je přebírán formou statických snímků přímo z mezipaměti. Díky tomuto triku vykreslení obrazu zabere až o 35 % času méně.
Rychlejší není jen kompletní vykreslení celé stránky, zkráceny byly také reakce na změny na již načtené stránce. I v tomto případě jde o to, že Chrome pozná, která oblast byla změna. Pak překreslí jen změněné pixely – dříve Google rozdělil obrazovku na čtverce a načítal celé čtverce. Tím vykreslování změn zrychlilo až o 40 %. Obecně by mělo platit, že čím méně změn se v nových obrazech oproti předchozím nachází, tím by mělo být vykreslování kompletního obrazu rychlejší.
Specifika druhého vylepšení
Právě zde je ale zmíněný háček. Druhé uvedené vylepšení je využitelné jen na některých zařízeních. Aktivní je na počítačích s Chrome OS, které pohání procesory od Intelu. A to ještě nikoli na všech, podporovány jsou procesory Core i3, i5 a i7 páté generace, což je Broadwell. Odpovídající zařízení mají funkci již automaticky zapnutou, jak tvrdí Intel.
To ale neznamená, že ostatní mají smůlu. Funkce je jako první zapnuta na procesorech Broadwell, Intel však bude podporu rozšiřovat postupně také na další řady procesorů, a to od první generace Intel Core až po poslední. Dokonce nezůstane ani u dražších procesorů Core i3 a vyšších, dočkají se též laciné Atomy. Co ale např. Pentia nebo Celerony? O těch Intel nemluví, takže není jasné, jestli budou podporovány i tyto levnější kousky.
Dvě metody od Intelu
Zda je optimalizace na vašem zařízení aktivní, zjistíte tak, že přejdete na stránku chrome://gpu. Měli byste na ní vidět to, co ukazují vyznačené oblasti obrázku, tj. že je hardwarová akcelerace aktivní u položky Native GpuMemoryBuffers:
Tile Update Mode může ukazovat One-copy, což je výchozí metoda. Zero-copy je ještě druhá metoda, kterou Intel podporuje. Obě tyto nové metody dokáží využít dostupné hardwarové akcelerace. Google se rozhodl opírat se primárně o One-copy. Pokud je hardwarová akcelerace aktivní, můžete si nativní Zero-copy ručně vynutit. (Jinak to nejspíš nemá valný smysl.) Jděte na stránku chrome://flags/#enable-zero-copy a předvolbu Zero-copy rasterizer (Rasterizér bez kopií) zapněte.
Samotná technika Zero-copy je rovněž zajímavá, ale v tomto článku není prostor se jí více věnovat. Kdo má zájem, může se začíst do výše uvedeného článku na webu Intelu, případně do tohoto. Ve článku je detailně popsáno, jaký je rozdíl mezi Zero-copy a One-copy. Obě techniky mají své klady i zápory, tj. v některých případech je efektivnější první, jindy druhá. Google pro Chrome každopádně zvolil jako výchozí One-copy.
Pro nás je teď důležité jen to, že podle rok starého článku na webu Intelu je hardwarová akcelerace dostupná jen na některých zařízeních. Kdo má procesor od AMD, má smůlu. Kdo nemá jeden z vybraných procesorů od Intelu, má také smůlu. Navíc nevíme, ve kterých operačních systémech je podpora automaticky aktivní. Mělo by patrně zatím jít jen o stroje s Chrome OS, což je přínosné pro naprostou minoritu lidí. Snad by se Google vyjádřil, kdyby to byla zastaralá informace.
Dále je důležité poznamenat si, že obě metody, tedy Zero-copy i One-copy, představují významné zlepšení oproti předchozím metodám vykreslovávání obrazu. V podstatě lze říct, že aktivací kterékoli z nich si pomůžete. Jen je potřeba mít odpovídající hardware i software.
Další vylepšení
Když se vrátíme k inovacím ve Chromu, kromě dvou výše uvedených vylepšení najdeme v prohlížeči další. Chrome se učí více a více využívat grafický čip. Na platformách Android, macOS a Windows prohlížeč lépe využívá hardwarovou akceleraci při vykreslování složitých stránek. Měla by být zkrácena vstupní odezva, zlepšen byl výkon animací a zaznamenáte i plynulejší posouvání pro stránce.
Google zmiňuje, že se Chrome v minulých měsících zlepšoval průběžně ve více oblastech. Kromě efektivnějšího využití hardwaru inteligentně přeskakuje redundantní úlohy atp. V tomto mám s firmou problém. Google neumí o vylepšeních efektivně komunikovat. Výše uvedené zmatky s tím, kde jsou dostupné metody One-copy nebo Zero-copy, jsou jedním příkladem.
Google novinky neumí prezentovat
Google obecně drobí informace o novinkách v jednotlivých řadách prohlížeče do mnoha příspěvků s tím, že se zmatečně rád vrací do minulosti. (Na to jsem si shodou okolností stěžoval nedávno.) Ani v případě lepšího využití hardwarové akcelerace vlastně pořádně nevíme, zda se jedná o funkci dostupnou v aktuální řadě Chromu, nebo bude přidána v té příští. Nebo byla do prohlížeče přidána již před půl rokem?
Přehlednosti nepřidává ani fakt, že je vedle sebe vyvíjeno několik řad prohlížeče na různých úrovních vývoje. Bylo by pro dobro všech, kdyby Google pravidelně vydával přehled všech novinek při uvedení nové verze Chromu, aby byly dostupné na jednom místě.