Apple считает, что есть некоторые ключевые элементы программного обеспечения, которые достаточно важны, чтобы требовать от них выделенных команд, чтобы они были в фокусе. Конфиденциальность одна. Они участвуют в разработке новых функций с самого начала. Безопасность это другое. Ничто не должно поставлять, что ставит под угрозу целостность системы. Доступность, потому что компания справедливо считает, что это не то, что нужно, а то, что нужно иметь. И производительность, которая постоянно ищет нулевую регрессию не только для новых функций и устройств, но и для каждой функции и устройства, поставляемого в настоящее время.

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

Но, по большей части, запуск версии x.0 в срок — это спринт к финишу. Каждый старается изо всех сил, но, неизбежно, нарушители условий и шоу-топперы начинают поглощать все больше и больше времени и внимания, и реальность устанавливает то, что вы можете сделать сейчас, в сравнении с тем, что вам придется оставить для x.1, x.2 или даже х.3 или х.4.

В этом году, однако, производительность была не просто частью работы, это была главная особенность iOS 12. И это означало, что все, от руководителей и менеджеров, устанавливали приоритеты для создателей и непосредственно ответственных людей, которые сначала создали или теперь владеют конкретные структуры были вложены в то, чтобы направить все свои ресурсы на то, чтобы сделать iPhone и iPad более быстрыми и более отзывчивыми не только на оборудовании текущего поколения 2017 года, но и на срок до пяти поколений, начиная с 2013 года.

Вы то, что вы обновляете

Хотя в силу своей модульной модели Google тратит месяцы, иногда год или больше, чтобы загрузить последнюю версию Android на однозначный процент существующих устройств, на которых она работает, и многим из этих устройств повезет, если они Когда-либо вообще видят какие-либо обновления, не говоря уже о годе, двух или трех годах, Apple гордится тем, что каждое устройство iOS, каждый носитель, в любой части мира получают одно и то же обновление на в то же время и продолжает получать обновления несколько раз в год, возвращаясь из поколения в поколение.

В iOS 12 Apple поддерживает тот же набор iPhone, iPad и iPod touch, который поддерживается в iOS 11: все с 64-разрядным процессором, то есть с конца 2013 года.

Apple считает, что эти обновления являются частью стоимости продуктов, которые она продает. Возможно, он не будет более ощутимым, чем бесплатные классы, предлагаемые в Apple Store, но надеется, что при сравнении цен это будет не просто продукт, который видят люди, а обязательство поддерживать этот продукт и активно помогать вам извлечь из него максимум пользы ,

Это делает программное обеспечение и сервисы Apple более подходящими для его аппаратного обеспечения, которое обычно остается активным в течение нескольких поколений — не только через несколько лет после его покупки, но и через последующих владельцев, когда оно продается или передается по наследству.

Это может показаться плохим деловым решением со стороны Apple. В конце концов, люди, довольные своими старыми устройствами, вряд ли смогут перейти на новые. Я думаю, что Apple считает это инвестицией. Люди, довольные своими старыми устройствами, чаще покупают у Apple снова, когда, наконец, решают перейти на новое. Они также с большей вероятностью убедят друзей и семью, у некоторых из которых есть скрипучие, взломанные, почти не заряжаемые, почти всегда не обновляемые устройства от других производителей, чтобы затем перейти на Apple.

Это оптимистичная модель, но когда это и лучшее, и правильное, вы делаете это.

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

В конце прошлого года все пришло в тупик из-за разногласий #iPhoneSlow и решения Apple увеличить производительность, чтобы продлить срок службы батареи и предотвратить неожиданные отключения.

Легко сказать, что Apple проклята, если она это делает, и проклинает, если она этого не делает. Утверждения о том, что Apple добавляет новые функции для перегрузки старых устройств с целью продвижения обновлений, совпадают с равными и противоположными утверждениями о том, что Apple отказывается от новых функций, чтобы увеличить спрос на обновления. Но работа Apple заключается в том, чтобы ориентироваться в этих коварных, часто нелепых водах и находить абсолютный наилучший баланс для максимально возможного количества клиентов.

Введите iOS 12.

От #iPhoneSlow к #iPhoneGO!

Там никогда не хватает инженеров. Даже для такой богатой компании, как Apple. Количество людей, способных работать на уровне Apple, готовых работать в Купертино, Калифорния и во всем, что влечет за собой, примет секретность и отраслевую изоляцию, которые идут с работой, и не соблазняется стартапами, венчурными капиталистами, IPO или менее требовательные, менее ограничительные варианты в другом месте всегда ограничены таким способом, который деньги никогда не смогут решить.

Как правило, лучшие и самые умные тратят год, работая над большими новыми флагманскими функциями или фундаментальными улучшениями, которые позволят последующие большие новые флагманские функции.

В этом году многие из Apple потратили много времени на улучшение производительности существующих фреймворков и технологий. (Вы можете поспорить, и я предполагаю, что многие это сделали, что это фундаментальное улучшение, которое позволит последующим большим новым флагманским функциям.)

Результаты можно найти в числах, которые Apple дала во время выступления на WWDC 2018:

  • Приложения запускаются на 40% быстрее.
  • Клавиатура запускается на 50% быстрее и остается более отзывчивой.
  • Камера запускается на 70% быстрее.
  • Доля лист запускается до 100% быстрее.

И, что впечатляюще, многое из этого остается верным, даже если старое устройство уже находится под нагрузкой.

Все старое снова новое чувство

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

Это, например, помогло решить странную ситуацию, когда устройство без нагрузки будет сбрасывать кадры, но при небольшой нагрузке этого не произойдет (поскольку в последнем случае оно уже наращивалось). И это было сделано путем передачи информации о том, что происходило с прокруткой и когда потребуется ускорение, от интерфейсов к контроллеру ЦП. Таким образом, кремний знает, что должно произойти и что нужно, чтобы это произошло гладко.

Что касается программного обеспечения, Apple работала над улучшением прокрутки (UITableView, UICollectionView и аналогичных пользовательских представлений). На большинстве устройств, работающих на частоте 60 Гц, есть 16 миллисекунд для настройки, заполнения и отрисовки контента в ячейках, которые составляют вид, до того, как кадры начнут падать и прокрутится. На 120 Гц iPad Pro всего 8 миллисекунд.

iOS 10 начала решать эту проблему с помощью API предварительной выборки, который мог работать в фоновом режиме, чтобы подготовить представления и предотвратить работу, выполняемую по требованию, когда ресурсы уже могут быть загружены. С iOS 12 Apple удалила некоторые крайние случаи, которые вызывали проблемы, такие как рисование одного и того же кадра дважды (что неотличимо от пропущенного кадра). В целом, iOS 12 также более умна в отношении того, как она планирует предварительные выборки, избегая параллелизма и обрабатывая их последовательно.

Auto Layout, основа для классов размеров, влияет на все мультиразмерные Apple, а для iPad — многооконные дисплеи. Он также был значительно улучшен в iOS 12. Например, независимые одноуровневые представления используются для линейного масштабирования. Теперь они масштабируются немного сублинейно. Зависимые родственные взгляды в iOS 11 масштабируются экспоненциально. Теперь они масштабируются линейно. То же самое с вложенными представлениями.

Apple также обратилась к памяти, что напрямую связано с производительностью. Ранее, когда приложения делали большой запрос памяти, система должна была найти эту память откуда-то — вероятно, в других приложениях. Это задержало текущее приложение, но также подорвало другие приложения. (Если позже вы вернетесь к одному из них, то, вероятно, придется перезагрузить его частично или полностью, что требует времени.)

iOS 12 помогает решить эту проблему, например, с помощью новых методов, таких как автоматические резервные магазины. Это означает, что приложение может рисовать изображение в портретном режиме с полной точностью, если это необходимо, но если оно рисует только штриховое изображение с низкой точностью, оно может уменьшиться с 64 бит до 8 бит, чтобы значительно снизить требования к памяти.

Apple также отказывается от старого API UIWebView для более современного WKWebview, который работает как на iOS, так и на macOS, и работает в своем собственном процессе, поэтому даже в случае сбоя приложение не сносит приложение.

От нулевой регрессии к положительной прогрессии

Исправления производительности в iOS 12 идут глубоко. Правильно запустив бета-версию на старом оборудовании, я уже вижу и чувствую значительные улучшения на уровне системы.

Теперь некоторые улучшения зависят от принятия разработчиками рекомендаций по производительности от Apple. Итак, нам придется подождать до осени, когда в App Store появятся поставляемые iOS 12 и приложения, оптимизированные под iOS 12, прежде чем можно будет измерить какие-либо окончательные результаты и сделать выводы.

Хотя я настроен оптимистично. Не только то, что iOS 12 улучшит производительность iPhone, iPad и iPod touch, начиная с выпуска 64-битной версии в конце 2013 года, но и поддержание этой производительности не просто как готовая к работе, а ключевая часть стратегии Apple в будущем.

В конце концов, чем выше вы хотите пойти, тем лучше вы должны поддерживать свои основы.

Прочитайте полную версию iOS 12: глубокое погружение

IOS

ВЕКТОР | Рене Ричи

Оцените статью!