Зачыніць аб'яву

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

Калі вам сапраўды цікавая гэтая тэма і вы хочаце даведацца, як на практыцы працуюць тыя ці іншыя элементы iOS, раю паглядзець запіс лекцыі. Ён доўжыцца каля 40 хвілін і даступны на афіцыйным сайце Apple пад назвай Сесія 202: Што новага ў Cocoa Touch. Калі вы не жадаеце марнаваць тры чвэрці гадзіны на прагляд запісу канферэнцыі, вы можаце прачытаць больш сціслую стэнаграму тут, аднак, збольшага тэхнічны. Для астатніх я паспрабую спрошчанае рэзюмэ ніжэй.

Паглядзіце выявы з прэзентацыі iOS 12:

З iOS 12 Apple вырашыла засяродзіцца на аптымізацыі, так як многія карыстальнікі скардзіліся на адладку (асабліва ў сувязі з iOS 11). Пераважная большасць негатыўных рэакцый тычылася нейкай «павольнасці», «захрасання» і «неплаўнасці» сістэмы і яе анімацыі. Таму праграмісты Apple паглыбіліся ў самыя асновы і пераадолелі ўсю сістэму анімацыі ў iOS. Гэтыя намаганні складаліся ў асноўным з трох асноўных налад, якія дазваляюць iOS 12 працаваць так, як яна працуе. Праграмістам удалося выявіць недахопы, якія прысутнічаюць у iOS з iOS 7.

1. Падрыхтоўка дадзеных

Першае змяненне - гэта аптымізацыя так званага Cell Pre-fetch API, які проста клапаціўся аб своеасаблівай падрыхтоўцы даных да таго, як яны сапраўды спатрэбяцца сістэме. Незалежна ад таго, ці былі гэта выявы, анімацыя або іншыя даныя, сістэма павінна была папярэдне прайграць неабходныя файлы ў памяці з дапамогай гэтага API, каб яны былі даступныя пры іх выкарыстанні і, такім чынам, не было скокаў у нагрузцы працэсара, якія выклікалі б вышэйзгаданыя праблемы цякучасці. Як высветлілася падчас дбайнай праверкі гэтага алгарытму, ён працаваў не зусім карэктна.

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

2. Імгненная прадукцыйнасць

Другое змяненне - мадыфікацыя кіравання харчаваннем вылічальных блокаў у прыладзе, няхай гэта будзе працэсар або графічны працэсар. У больш ранніх версіях сістэмы працэсару спатрэбілася значна больш часу, каб заўважыць павышаныя патрабаванні да актыўнасці і, такім чынам, павялічыць працоўныя частоты. Акрамя таго, гэта паскарэнне/запаволенне працэсара адбывалася паступова, так што ў многіх выпадках здаралася, што сістэме патрабавалася энергія для выканання нейкай задачы, але яна не была адразу даступная, і зноў адбываліся падзенні анімацыі 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 першага пакалення.

.