Advertentie sluiten

Al aan het begin van het jaar kwamen vertegenwoordigers van Apple zij beweerden, dat de nieuwe iOS 12 zich vooral op optimalisatie zal richten en dat we tot volgend jaar op wat fundamenteler nieuws zullen moeten wachten. Ongeveer hetzelfde werd gezegd tijdens de keynote op maandag, tijdens het gedeelte over iOS 12. Ja, er zal inderdaad wat nieuws verschijnen in de komende versie van iOS, maar de hoofdrol wordt gespeeld door optimalisatie, wat vooral eigenaren van oudere machines zal plezieren ( over hoe iOS 12 leven in mijn leven blies. Dit weekend kun je de eerste generatie iPad Air al lezen). Gisteren werd in het kader van het WWDC-programma een lezing gehouden waarin nader werd uitgelegd wat Apple heeft gedaan om het nieuwe systeem merkbaar sneller te laten draaien.

Als je echt geïnteresseerd bent in dit onderwerp en wilt weten hoe bepaalde elementen van iOS in de praktijk werken, raad ik je aan de opname van de lezing te bekijken. Het duurt ongeveer 40 minuten en is onder de titel beschikbaar op de officiële website van Apple Sessie 202: Wat is er nieuw in Cocoa Touch. Als u geen drie kwartier wilt verspillen aan het kijken naar de opname van de conferentie, kunt u een beknopter transcript lezen hieris echter enigszins technisch. Voor de rest van jullie zal ik hieronder een vereenvoudigde samenvatting proberen.

Bekijk de afbeeldingen van de onthulling van iOS 12:

Met iOS 12 besloot Apple zich te concentreren op optimalisatie, omdat veel gebruikers klaagden over foutopsporing (vooral in verband met iOS 11). De overgrote meerderheid van de negatieve reacties had betrekking op een soort "traagheid", "vastlopen" en "onsoepelheid" van het systeem en zijn animaties. De programmeurs van Apple doken daarom in de basis en overwonnen het hele animatiesysteem binnen iOS. Deze inspanning bestond voornamelijk uit drie grote aanpassingen die ervoor zorgen dat iOS 12 werkt zoals het werkt. Programmeurs zijn erin geslaagd fouten te ontdekken die al sinds iOS 7 in iOS aanwezig zijn.

1. Gegevensvoorbereiding

De eerste verandering is de optimalisatie van de zogenaamde Cell Pre-fetch API, die simpelweg voor een soort datavoorbereiding zorgde voordat het systeem deze daadwerkelijk nodig had. Of het nu om afbeeldingen, animaties of andere gegevens ging, het systeem moest met deze API de benodigde bestanden vooraf in het geheugen afspelen, zodat ze beschikbaar zouden zijn wanneer ze werden gebruikt en er dus geen sprongen in de processorbelasting zouden optreden, wat zou leiden tot de bovengenoemde vloeibaarheidsproblemen. Tijdens een grondige audit van dit algoritme bleek dat het niet helemaal correct werkte.

In sommige gevallen bereidde hij de gegevens vooraf voor, in andere gevallen niet. In andere gevallen laadde het systeem de gegevens, ook al waren deze al in de cache van deze API opgeslagen, en soms vond er een soort van "dubbel laden" plaats. Dit alles veroorzaakte dalingen in FPS tijdens animaties, hakken en andere inconsistenties in de werking van het systeem.

2. Directe prestaties

De tweede verandering is de wijziging van het energiebeheer van de rekeneenheden in het apparaat, of het nu CPU of GPU is. In eerdere versies van het systeem duurde het merkbaar langer voordat de processor de toegenomen activiteitseisen opmerkte en daarmee de werkfrequenties verhoogde. Bovendien vond deze versnelling/vertraging van de processor geleidelijk plaats, waardoor het in veel gevallen voorkwam dat het systeem voor een bepaalde taak stroom nodig had, maar deze niet onmiddellijk beschikbaar was, en er waren opnieuw dalingen in FPS-animaties, enz. Dit verandert in iOS 12, omdat hier de prestatiecurve van de processors aanzienlijk agressiever is aangepast, en de geleidelijke toename/afname van frequenties is nu onmiddellijk. De prestatie moet dus beschikbaar zijn op de momenten dat deze nodig is.

3. Perfectere automatische lay-out

De derde verandering betreft de interface die Apple introduceerde in iOS 8. Het is het zogenaamde Auto-layout-framework, dat in iOS verscheen op het moment dat Apple begon met het vergroten van de grootte van zijn iPhone-schermen. Het raamwerk zorgde ervoor dat het uiterlijk van de gebruikersinterface correct was, ongeacht het type en de grootte van het beeldscherm waarop de gegevens werden weergegeven. Het is een soort kruk die ontwikkelaars helpt hun applicaties (maar niet alleen hen, dit raamwerk is een integraal onderdeel van het iOS-systeem als zodanig en zorgt voor de juiste weergave van alle delen van de gebruikersinterface) te optimaliseren voor verschillende weergaveformaten. Bovendien is dit hele systeem grotendeels geautomatiseerd. Bij gedetailleerd onderzoek bleek dat de werking ervan behoorlijk veel van de systeembronnen vergt, en de grootste impact op de prestaties verscheen in iOS 11. In iOS 12 heeft de bovengenoemde tool een aanzienlijk herontwerp en optimalisatie ondergaan, en in zijn huidige vorm is zijn De impact op de werking van het systeem is aanzienlijk kleiner, waardoor bronnen in de CPU/GPU grotendeels vrijkomen voor de behoeften van andere applicaties en tools.

Zoals je kunt zien, heeft Apple de optimalisatieprocessen echt van de top gehaald en dat is echt terug te zien in het eindproduct. Als je de iPhones of iPads van vorig jaar hebt, verwacht dan niet te veel veranderingen. Maar als je een apparaat bezit dat twee, drie, vier jaar oud is, zal de verandering zeker meer dan merkbaar zijn. Ook al bevindt iOS 12 zich momenteel in de beginfase, het werkt al aanzienlijk beter dan welke versie van iOS 1 dan ook op mijn 11e generatie iPad Air.

.