comment Apple Des applications suralimentées lancées dans iOS 15 et macOS Monterey
Lorsque vous avez démarré iOS 15 et macOS Monterey pour la première fois cet automne, vous avez peut-être remarqué autre chose que les nouvelles fonctionnalités FaceTime et les modifications apportées à Safari : une vitesse améliorée. Le nouveau système d’exploitation d’Apple, selon un développeur qui a étudié le code, Apple Modifie considérablement la façon dont les applications communiquent avec le système et peut réduire considérablement les temps de démarrage.
Développeur iOS et prédécesseur Apple L’employé Noah Martin a trouvé quelque chose d’intéressant en lisant les notes de version de Xcode 13 :
Tous les programmes et dylibs créés avec macOS 12 ou iOS 15 ou des cibles de déploiement ultérieures utilisent désormais le format de réparation en chaîne. Cela utilise une commande de chargement et des données LINKEDIT différentes et ne s’exécutera pas ou ne se chargera pas sur les anciennes versions du système d’exploitation.
Cela peut sembler peu, mais ces deux phrases expliquent les technologies qui peuvent changer votre expérience avec votre Mac et votre iPhone. Martin a fait un travail de détective pour comprendre le raisonnement derrière le changement, et comme il l’a décrit dans un article moyen long et très technique, les applications optimisées pour iOS 15 et macOS 12 peuvent se lancer plus rapidement que Beaucoup plus vite maintenant.
Comment cela marche-t-il
Étant donné qu’iOS et macOS fonctionnent actuellement, toutes les applications sont créées sous forme de bundles. Contrairement à Windows, une application contient les composants les plus nécessaires dans un seul package. Les applications sont essentiellement des dossiers qui contiennent divers composants de programme. (Si vous avez un Mac, vous le savez probablement. Faites un clic droit sur l’application dans le Finder et vous verrez l’élément de menu « Afficher le contenu du package » qui vous permet de voir à l’intérieur de l’application.) De plus, l’application se charge avec le dynamique lieur Le processus (dyld) partage la bibliothèque puis la copie dans la RAM du système pour un accès rapide pendant l’exécution du programme.
La RAM se compose de ce qu’on appelle des pages, dont chacune ne fait que 16 Ko et existe aussi longtemps que l’application est en cours d’exécution. Le processus dyld a jusqu’à présent peu à peu compacté ces tables, ce qui retarde en fait le démarrage de l’application. Comme Martin l’a appris, Apple Dans iOS 15 et macOS 12, ce problème est résolu à l’aide de chaînes, de correctifs et de pointeurs – au lieu de charger séparément des composants d’application individuels et des bibliothèques partagées dans la RAM, les pointeurs peuvent ainsi lier des applications jusqu’à 64 Go et transmettre des correctifs.
Cela semble compliqué, mais c’est en fait assez simple. Le contenu de la RAM est maintenant connecté les uns aux autres dans une chaîne. Cela permet d’économiser beaucoup de métadonnées pour la gestion, ce qui rend la gestion globale de la RAM plus efficace. Compressez également les pages RAM qui n’ont pas été utilisées depuis longtemps.
Selon Martin, ce nouveau système a deux conséquences. La quantité de mémoire disponible est optimisée et la distribution ciblée du contenu binaire en mémoire assure un démarrage plus rapide de l’application. Lors de ses tests, Martin a pu économiser jusqu’à 50 % des métadonnées importées via le processus dyld, ce qui a finalement accéléré le démarrage de l’application.
Nous verrons bientôt comment cela fonctionne. Apple Les troisièmes versions bêta d’iOS 15 et de macOS 12 ont été publiées, probablement en septembre et octobre respectivement.
Cet article est originaire de Macwelt et a été écrit par Christian Rentrop.