Cómo Apple tiene un lanzamiento de aplicación sobrealimentado en iOS 15 y macOS Monterrey

Cuando enciendes iOS 15 y macOS Monterey por primera vez este otoño, probablemente notará algo más allá de las nuevas funciones de FaceTime y los cambios de Safari: velocidad mejorada. Según un desarrollador que ha profundizado en el código de Applelos nuevos sistemas operativos, Apple ha cambiado significativamente la forma en que las aplicaciones se comunican con el sistema y podría reducir drásticamente el tiempo que tarda en iniciarse.

desarrollador de iOS y ex Apple el empleado Noah Martin se percató de algo intrigante mientras leía las notas de lanzamiento de Xcode 13:

Todos los programas y dylibs creados con un objetivo de implementación de macOS 12 o iOS 15 o posterior ahora use el formato de arreglos encadenados. Esto utiliza diferentes comandos de carga y datos LINKEDIT, y no se ejecutará ni se cargará en versiones anteriores del sistema operativo.

Puede que no parezca mucho, pero esas dos frases explican la tecnología que podría cambiar tu experiencia con tu Mac y iPhone. Martin ha realizado un trabajo de detective para ver qué hay detrás de este cambio y, como describe en una publicación mediana larga y muy técnica, aplicaciones optimizadas para iOS. 15 y mac OS 12 es probable que se lancen mucho más rápido que ahora.

Cómo funciona

Como iOS y macOS funcionan actualmente, todas las aplicaciones se crean como paquetes. a diferencia de Windows, las aplicaciones están equipadas con los componentes más necesarios dentro de un paquete. Las aplicaciones son básicamente carpetas que contienen todo tipo de componentes del programa. (Si tiene una Mac, es posible que lo sepa. Haga clic con el botón derecho en una aplicación en el Finder y verá el elemento de menú «Mostrar contenido del paquete» que le permite mirar dentro de la aplicación). Además, las aplicaciones también se cargan bibliotecas compartidas con el proceso de vinculación dinámica (dyld), que luego se copian en la memoria RAM del sistema para acceder rápidamente mientras se ejecuta el programa.

La RAM consta de las llamadas páginas que sólo tienen 16 kilobytes de capacidad cada uno y permanecerán mientras la aplicación se esté ejecutando. Hasta ahora, el proceso dyld ha empaquetado gradualmente estas tablas, lo que esencialmente retrasó los lanzamientos de aplicaciones. Como Martin ha aprendido, Apple resolvió el problema en iOS 15 y mac OS 12 Con cadenas, correcciones y punteros: en lugar de cargar gradualmente los componentes individuales de la aplicación y las bibliotecas compartidas por separado en la RAM, un puntero puede encadenar aplicaciones hasta 64 gigabytes y conectarlas entre sí a través de las correcciones.

Suena complejo, pero es simple. El contenido de RAM ahora se interconecta entre sí en una cadena. Esto ahorra enormes cantidades de metadatos que, de otro modo, se gastarían en administración, lo que hace que toda la administración de RAM sea mucho más eficiente. Además, se comprimen las páginas de RAM que no se han utilizado durante mucho tiempo.

Según Martin, este nuevo sistema tiene dos resultados. La cantidad de memoria disponible está optimizada y la distribución dirigida de contenido binario en la memoria garantiza lanzamientos de aplicaciones más rápidos. En sus pruebas, Martin pudo ahorrar hasta un 50 por ciento en metadatos, que se importan a través del proceso dyld y, en última instancia, permiten que las aplicaciones se inicien más rápido.

Veremos cómo funciona esto pronto. Apple ya ha lanzado la tercera beta de iOS 15 y mac OS 12 para un probable lanzamiento en septiembre y octubre, respectivamente.

Este artículo se originó en Macwelt y fue escrito por Christian Rentrop.

Publicaciones relacionadas

Botón volver arriba