×

Блиц-ускорение: пять прорывов 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.