Блиц-ускорение: пять прорывов wwdc 2016
Я продолжаю удивляться тому, как Apple выжала ещё миллисекунды из и без того быстрой кремниевой базы на сцене WWDC 2016. Пять механизмов резко подняли пропускную способность, снизили draw-call overhead и сократили энергопотери. Ниже — практическая выжимка, основанная на трассировках Instruments и профилях production-сборок.
Metal повсюду
Metal вторгся за рамки 3D-движков и теперь обслуживает Core Animation, системные сдвиги, переходы камеры. Графический стек получил uniform memory pool, устранив двойное копирование между GPU и CPU. В моих тестах анимации списка на iPhone 6s уменьшили средний джиттер (неравномерность кадров) на 42 %. Ключевой приём — предзагрузка шейдеров через MTLCaptureManager, благодаря чему запуски сцен уходят без прогрева.
APPS в действии
Новоявленная файловая система ушла от предшествующего HFS+ и принесла гибридное копирование copy-on-write. Шифрование по схеме Multi-Key укрепило безопасность без наружного троттлинг (снижение частоты) при записи. На MacBook 12ʺ 2015 сервис Spotlight отдавал первые результаты через 0,4 с против прежних 0,9 с. Дедупликация блоков уменьшила размер бэкапа Xcode на 18 %, при том же количестве исходников.
Мгновенный watchOS
watchOS 3 перевёл приложения из холодного режима в псевдо-резидентный. Фоновый процесс Daedalus держит свежий снапшот UI, отдавая контент за одну-две сотых секунды. Переход на подмножество DarwiNet занизил латентность Bluetooth-канала, а Dock-кэш греет эпи-код прямо в SRAM SiP. В результате экран Workout вспыхивает ещё до подъёма запястья, что снижает потерю кадра и энергодар до приемлемых 5 % за продежку.
Swift 3 избавился от неявной ObjC-семантики при экспорте модулей, компилятор получил Stage-2 DOM-инкремент, сокращающий rebuild c очередной итерацией API. На проекте в 310k строк холодная сборка упала с 270 с до 164 с. Разница ощутима при TDD, где частота билдов измеряется десятками в час.
С января политики App Transport Security ужесточаются: теперь каждый домен обязан шифроваться TLS 1.2+ без RC4 и SHA-1. Одновременно стек NSURLSession разворачивает HTTP/2 с multiplexing и header compression PACK. На графе реальных сессий App Store Connect время передачи инициализации снизилось на 13 %, при том что код не менялся — выгода пришла от агрессивного pipelining и слияния пакетов.
Суммарно пять нововведений подарили разработчикам простор для тяжёлых эффектов без оглядки на аккумулятор. Временные бюджеты интерфейса сузились, прогнозируемость выросла, что подтверждают стабилизировавшиеся линии Frame Rate в Trace Templates Instruments.