Закрыть объявление

Уже в начале года представители Apple они утверждали, что новая iOS 12 будет сосредоточена в основном на оптимизации, и нам придется дождаться более фундаментальных новостей до следующего года. Примерно то же самое говорилось и на программном докладе в понедельник, в секции про iOS 12. Да, некоторые новости действительно появятся в предстоящей итерации iOS, но главную роль играет оптимизация, которая особенно порадует владельцев старых машин ( о том, как iOS 12 вдохнула жизнь в мой iPad Air 1-го поколения Вы сможете прочитать уже на этих выходных). Вчера в рамках программы WWDC прошла лекция, где более подробно объяснили, что сделала Apple, чтобы новая система работала заметно быстрее.

Если вас действительно интересует эта тема и вы хотите узнать, как на практике работают те или иные элементы iOS, рекомендую посмотреть запись лекции. Он длится около 40 минут и доступен на официальном сайте Apple под названием. Сессия 202: Что нового в Cocoa Touch. Если вы не хотите тратить три четверти часа на просмотр записи конференции, вы можете прочитать более краткую стенограмму. здесьОднако это несколько технический вопрос. Для остальных я попробую упрощенное изложение ниже.

Посмотрите изображения с презентации iOS 12:

В iOS 12 Apple решила сосредоточиться на оптимизации, так как многие пользователи жаловались на отладку (особенно в связи с iOS 11). Подавляющее большинство негативных реакций связано с какой-то «медлительностью», «зависанием» и «неплавностью» системы и ее анимации. Поэтому программисты Apple углубились в самые основы и преодолели всю систему анимации в iOS. Эти усилия заключались в основном в трёх основных изменениях, благодаря которым iOS 12 работает так, как она работает. Программистам удалось раскрыть недостатки, которые присутствовали в iOS начиная с iOS 7.

1. Подготовка данных

Первое изменение — это оптимизация так называемого API предварительной выборки ячеек, который просто обеспечивает своего рода подготовку данных до того, как они действительно понадобятся системе. Будь то изображения, анимация или другие данные, система должна была предварительно воспроизвести необходимые файлы в памяти с помощью этого API, чтобы они были доступны при их использовании и, таким образом, не было скачков загрузки процессора, которые могли бы вызвать вышеупомянутые проблемы текучести. Как выяснилось в ходе тщательной проверки этого алгоритма, он работал не совсем корректно.

В некоторых случаях он заранее готовил данные, в других — нет. В других случаях система загружала данные, хотя они уже были подготовлены в кеше этого API, а иногда происходила своего рода «двойная загрузка». Все это вызывало падения FPS при анимации, обрезку и другие нестыковки в работе системы.

2. Мгновенная производительность

Второе изменение — это модификация управления питанием вычислительных блоков устройства, будь то CPU или GPU. В более ранних версиях системы процессору требовалось заметно больше времени, чтобы заметить возросшие требования к активности и, таким образом, повысить свои рабочие частоты. Кроме того, такое ускорение/замедление работы процессора происходило постепенно, поэтому во многих случаях случалось, что системе требовалась мощность для какой-то задачи, но ее не было сразу, и снова были падения FPS анимации и т.д. Это меняется в iOS 12, потому что именно здесь кривая производительности процессоров была скорректирована значительно более агрессивно, и постепенное увеличение/понижение частот теперь происходит мгновенно. Таким образом, производительность должна быть доступна в те моменты, когда она необходима.

3. Более совершенный автоматический макет.

Третье изменение касается интерфейса, который Apple представила в iOS 8. Это так называемый фреймворк Auto-layout, который вошёл в iOS в то время, когда Apple начала увеличивать размер дисплеев своих iPhone. Платформа следила за тем, чтобы внешний вид пользовательского интерфейса был правильным независимо от типа и размера дисплея, на котором отображались данные. Это своего рода костыль, который помогает разработчикам оптимизировать свои приложения (но не только их, этот фреймворк является неотъемлемой частью системы iOS как таковой и заботится о правильном отображении всех частей пользовательского интерфейса) для нескольких размеров дисплея. Кроме того, вся эта система во многом автоматизирована. При детальном рассмотрении выяснилось, что его работа довольно требовательна к системным ресурсам, а наибольшее влияние на производительность проявилось в iOS 11. В iOS 12 вышеупомянутый инструмент получил существенный редизайн и оптимизацию, и в нынешнем виде его Влияние на работу системы значительно меньше, что в значительной степени высвобождает ресурсы CPU/GPU для нужд других приложений и инструментов.

Как видите, Apple действительно взяла процессы оптимизации с пика, и это действительно проявляется в конечном продукте. Если у вас прошлогодние iPhone или iPad, не ждите слишком больших изменений. Но если вы владеете устройством двух, трех, четырех лет, изменения точно будут более чем заметными. Несмотря на то, что iOS 12 в настоящее время находится на ранней стадии разработки, она уже работает значительно лучше, чем любая версия iOS 1 на моем iPad Air 11-го поколения.

.