Už na počátku roku zástupci Applu prohlašovali, že se nový iOS 12 bude zaměřovat především na optimalizaci a na nějaké zásadnější novinky si budeme muset počkat až příští rok. Vesměs to samé zaznělo v pondělí na keynote, během sekce o iOS 12. Ano, nějaké novinky se v nadcházející iteraci iOS skutečně objeví, hlavní roli však hraje optimalizace, což potěší zejména majitele starších strojů (o tom, jak iOS 12 vlil život do mého iPadu Air 1. generace si budete moci přečíst již o víkendu). Včera se v rámci programu WWDC konala přednáška, na které bylo detailněji vysvětleno, co Apple udělal pro to, aby nový systém běhal o poznání svižněji.
Pokud vás toto téma opravdu zajímá a chcete vědět, jak fungují jisté prvky iOS v praxi, doporučuji se podívat na záznam z přednášky. Má zhruba 40 minut a je dostupný na oficiálním webu společnosti Apple pod názvem Session 202: What’s New in Cocoa Touch. Jestliže nechcete ztrácet tři čtvrtě hodiny sledováním záznamu konference, stručnější přepis si můžete přečíst zde, je však poněkud technický. Pro ty ostatní se pokusím o zjednodušené shrnutí níže.
Podívejte se na obrázky z představení iOS 12:
Apple se s iOS 12 rozhodl zaměřit na optimalizaci, jelikož právě na odladěnost si mnoho uživatelů stěžovalo (zejména v souvislosti s iOS 11). Naprostá většina negativních reakcí se týkala jakési „pomalosti“, „zasekanosti“ a „neplynulosti“ systému a jeho animací. Programátoři Applu tedy zabrouzdali do samotných základů a celý animační systém v rámci iOS překopali. Toto úsilí se skládalo primárně ze tří hlavních úprav, díky kterým běhá iOS 12 tak, jak běhá. Programátorům se podařilo odhalit nedostatky, jež se v rámci iOS nacházely již od iOS 7.
1. Příprava dat
První změnou je optimalizace tzv. Cell Pre-fetch API, které se zjednodušeně staralo o jakousi přípravu dat předtím, než je systém skutečně potřeboval. Ať už šlo o obrázky, animace či další data, systém měl s tímto API předehrát potřebné soubory do paměti k tomu, aby při jejich použití byly k dispozici a nedocházelo tak ke skokovému zatěžování procesoru, jež by způsobovalo výše zmíněné problémy s plynulostí. Jak se při důkladném auditu tohoto algoritmu ukázalo, nefungoval zcela korektně.
V některých případech data předpřipravil, v jiných pak nikoli. V dalších případech systém data načítal i přesto, že už byla připravena v mezipaměti tohoto API a leckdy docházelo k jakémusi „dvojitému načítání“. To vše způsobovalo ony propady v FPS v rámci animací, sekání a další neplynulosti v chodu systému.
2. Okamžitý výkon
Druhou změnou je úprava power managementu výpočetních jednotek v zařízení, ať už jde o CPU nebo GPU. V dřívějších verzích systému trvalo o poznání déle, než procesor zaznamenal zvýšené nároky na aktivitu a navýšil tak své provozní frekvence. Toto zrychlování/zpomalování procesoru navíc probíhalo postupně, tudíž se v mnoha případech dělo to, že systém pro nějaký úkol potřeboval výkon, ten však nebyl okamžitě k dispozici a opět docházelo k propadům FPS animací apod. To se v iOS 12 mění, neboť je zde výkonnostní křivka procesorů upravena podstatně agresivněji a ono postupné zvyšování/snižování frekvencí je nyní okamžité. Výkon by tak měl být k dispozici v momentech, kdy je třeba.
3. Dokonalejší Auto-layout
Třetí změna se týká rozhraní, které Apple představil v iOS 8. Jedná se o tzv. Auto-layout framework, jenž se do iOS dostal v období, kdy Apple začal se zvětšováním displejů svých iPhonů. Framework se staral o to, aby byla podoba uživatelského rozhraní korektní bez ohledu na to, na jaký typ a velikost displeje se data vykreslují. Jedná se o jakousi berličku, která vývojářům pomáhá s optimalizováním jejich aplikací (ale nejen jich, tento framework je integrální součástí systému iOS jako takového a stará se o správné zobrazení všech částí uživatelského rozhraní) na několik velikostí displejů. Celý tento systém je navíc do velké míry automatizovaný. Při detailním zkoumání se ukázalo, že je jeho provoz značně náročný na systémové zdroje a největší dopady na výkon se objevily v iOS 11. V iOS 12 se tak zmíněný nástroj dočkal výrazného přepracování a optimalizace a v současné podobě je jeho dopad na chod systému značně menší, což do velké míry uvolňuje zdroje v CPU/GPU pro potřeby dalších aplikací a nástrojů.
Jak je vidět, Apple vzal optimalizační procesy opravdu od píky a na výsledném produktu je to opravdu znát. Pokud máte loňské iPhony či iPady, příliš velké změny nečekejte. Jestliže ale vlastníte zařízení dva, tři, čtyři roky staré, změna bude rozhodně více než citelná. I když je v současné době iOS 12 ve své rané fázi, už nyní mi na mém iPadu Air 1. generace běhá podstatně lépe, než jakákoliv verze iOS 11.
Dokud to neuvidím na vlastní oči, tak tomu neuvěřím. Že by nový iOS nepotřeboval nejnovější železo? To dostanou vývojáři od markeťáků vynadáno…
Jede to lépe nez iOS 11.4
Na mojem se to běží svěle