Code-Optimierung

Warum iOS 12 deutlich schneller wird

19.09.2018
Von Christian Rentrop
Mit iOS 12 hat Apple den Code des iPhone- und iPad-Betriebssystems stark optimiert. Dadurch soll iOS 12 deutlich schneller werden als sein Vorgänger. In der Regel werden Geräte mit neuen iOS-Versionen wegen der wachsenden Zahl an Funktionen langsamer. Wir erklären, warum es diesmal anders ist.

Mit jedem neuen iOS kommen neue Funktionen, das Betriebssystem an sich wird leistungsstärker. Im Umkehrschluss bedeutet das allerdings auch, dass mehr Hintergrundprozesse mehr Prozessorlast verursachen und den Arbeitsspeicher eines iPhone oder iPad höher belasten. Kaum freies RAM und hohe Prozessorlast bedeuten jedoch Performance-Einbußen, unter denen letztlich auch die Akkulaufzeit leidet.

Gegen den Trend: Mit dem Update auf iOS 12 werden Apple-Geräte eher schneller als langsamer.
Gegen den Trend: Mit dem Update auf iOS 12 werden Apple-Geräte eher schneller als langsamer.
Foto: Olivier Le Moal - shutterstock.com

Das Resultat ist nach vielen größeren Updates unerfreulich: Alte iPhones und iPads werden lahm und weil Apple seit Jahren zeitgleich zum iOS-Update auch neue Geräte herausbringt, weckt das neue iOS auf dem alten Gerät bei vielen Benutzern vor allem einen Wunsch: ein neues Modell kaufen und das Altgerät bei Ebay einstellen.

Code-Optimierung statt neuer Features

Man muss Apple zugute halten, dass alte Geräte lange gepflegt werden: iOS 12 unterstützt noch das inzwischen fünf Jahre alte iPhone 5S und das iPad Mini 2 – auf Android-Geräten ist meistens schon nach zwei bis drei Jahren Schluss. Fünf Jahre sind eine lange Zeit in der Mobilgeräte-Evolution. Cupertino hat allerdings auch aus Fehlern gelernt: Wegen grundsätzlich sinnvoller, aber bis iOS 11.3 eben versteckter Leistungsbremsen wie der Leistungsreduzierung bei alten Akkus („ Battery-Gate“) hat Apple viel Ärger bekommen – und kommuniziert die Funktion in iOS 12 deutlich offener. Und auch die bislang grassierende Featuritis wurde mit iOS 12 unterbunden: Anstatt zahlloser mehr oder weniger sinnvoller neuer Features wird mit dem neuen System nur wenig ergänzt. Stattdessen hat Apple verbessert und optimiert, was bereits vorhanden ist – so auch den Code von iOS selbst.

Schon auf der WWDC zeigte Apple den Entwicklern die Optimierungen für iOS 12, um die Geschwindigkeit zu verbessern.
Schon auf der WWDC zeigte Apple den Entwicklern die Optimierungen für iOS 12, um die Geschwindigkeit zu verbessern.

Besserer Code bedeutet mehr Performance – auch auf alten Geräten

Die Verbesserungen im Code gehen sogar so weit, dass Apple auf alten Geräten wie dem iPhone 6 deutliche Verbesserungen verspricht: Von bis zu hundert Prozent Leistungssteigerung ist etwa auf der iOS-12-Vorschauseite die Rede. Um solche enormen Verbesserungen zu bewerkstelligen, hat sich Apple auf die Jagd nach Bugs und Codefehlern gemacht. Bereits bei der Entwicklerkonferenz WWDC im Juni dieses Jahres hatte Apple im Rahmen einiger Entwickler-Keynotes auf dieses Vorhaben hingewiesen. Dabei wurde eine Vielzahl von Apps analysiert und das Cocoa-Touch-Framework wurde optimiert.

So wird zum Beispiel die „gefühlte“ Geschwindigkeit dadurch besser, dass Prefetch-Prozesse im System und in Apps mit iOS 12 effizienter ablaufen. In a¨lteren iOS-Versionen blockierten im schlimmsten Fall zwei Prozesse gleichzeitig den Prozessor – etwa Scrolling in der App und das Prefetch, also das Vorausladen von Infos: eine Ursache für offensichtliche Verzögerungen. iOS 12 wickelt solche Prozesse nacheinander ab. Dies sorgt für ein auf den ersten Blick deutlich schnelleres Benutzererlebnis, da der Prozessor jeweils nur eine Aufgabe hat, die er entsprechend zu¨gig abwickeln kann. Besonders Geräte mit wenigen Prozessorkernen und geringerer RAM-Ausstattung, sprich: alte iPhones und iPads, profitieren von dieser Änderung.

Auch die Art eines Bildes hat in iOS 12 Einfluss auf den Arbeitsspeicher, da es je nach Format unterschiedlich viel davon belegt.
Auch die Art eines Bildes hat in iOS 12 Einfluss auf den Arbeitsspeicher, da es je nach Format unterschiedlich viel davon belegt.

Ein Fehler in der Prozessorsteuerung wurde ausgemerzt

Als eine weitere Optimierungsmaßnahme hat Apple in iOS 12 eine bekannte Performance-Bremse ausgemerzt: Im CPU-Performance-Controller des Systems gibt es offenbar schon seit Jahren einen Bug, der verhindert, dass der Prozessor des iPhone oder iPad für größere Aufgaben rechtzeitig hochfährt. Hierzu muss man wissen, dass moderne Prozessoren lediglich unter Last die volle Leistung fahren. Das Problem dabei ist: Wenn der Prozessor nicht rechtzeitig startet, dann laufen die Prozesse meistens mit langsamem Takt unter Last durch – und das Resultat sind sichtbare Verzögerungen für den User, die das Gefühl verursachten, dass das System langsam arbeitet. In iOS 12 hat Apple dieses Problem nun ausgemerzt: Der Prozessor taktet wesentlich schneller hoch und kann die Last abfangen. Die Hardware in iPhone oder iPad wird also deutlich effizienter genutzt.

Auto-Layout-Performance verbessert

Und noch ein Beispiel, wo die Entwickler angesetzt haben: Ein Fehler in der sogenannten Auto-Layout-Funktion, die seit iOS 8 für die Generierung der App-Benutzeroberfläche zuständig ist – also seit der Zeit, in der die iPhones groß wurden –, entpuppte sich als Systembremse: Vor allem unter iOS 11 soll sich der mitgeschleppte Fehler deutlich zeigen und heftige Performance-Einbußen verursachen – wiederum besonders auf älteren Geräten. Apple hat diese Funktion massiv u¨berarbeitet – und damit in allen Apps deutliche Leistungsverbesserungen erzielt.

Auch die Art eines Bildes hat in iOS 12 Einfluss auf den Arbeitsspeicher, da es je nach Format unterschiedlich viel davon belegt.
Auch die Art eines Bildes hat in iOS 12 Einfluss auf den Arbeitsspeicher, da es je nach Format unterschiedlich viel davon belegt.

Speichertrick für weniger RAM-Bedarf

Neben den Optimierungen auf Prozessorseite hat Apple aber auch am RAM-Verbrauch gearbeitet: Eine neue Technik namens Automatic Backing Store sorgt dafür, dass der RAM-Bedarf an den Bedarf der verwendeten Dateitypen angepasst wird: Ein Schwarzweiß-Bild belegt unter iOS 12 weniger RAM als das gleiche Bild in Farbe. So kann iOS den Speicher effizienter nutzen. Ein Trick, der letztlich wieder den Prozessor und das System entlastet, da es sich nicht mehr so oft um das Auslagern des Arbeitsspeichers in den Datenspeicher kümmern muss.

Natürlich gibt es auch künftig noch die eine oder andere App, die schlicht schlecht programmiert ist und iPhone oder iPad ausbremst, doch die gröbsten Fehler im Basissystem hat Apple mit iOS 12 beseitigt. Und in der Tat: Egal ob auf neuen oder älteren Systemen, iOS 12 wirkt bei unseren Stichproben viel flotter als sein Vorgänger. Die Code-Optimierungen haben also ihren Zweck erfüllt – auch wenn diese in künftigen iOS-Versionen sicher noch weiter verbessert werden können. (Macwelt)