Затвори рекламата

Още в началото на годината представители на 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. Незабавно изпълнение

Втората промяна е промяната в управлението на захранването на изчислителните единици в устройството, било то CPU или GPU. В по-ранните версии на системата на процесора му трябваше значително повече време, за да забележи повишени изисквания за активност и по този начин да увеличи работните си честоти. В допълнение, това ускоряване/забавяне на процесора става постепенно, така че в много случаи се случва системата да се нуждае от захранване за някаква задача, но то не е веднага достъпно и отново има спадове в FPS анимациите и т.н. Това се променя в iOS 12, тъй като именно тук кривата на производителността на процесорите е коригирана значително по-агресивно и постепенното увеличаване/намаляване на честотите вече е незабавно. Следователно изпълнението трябва да е достъпно в моментите, когато е необходимо.

3. По-перфектно автоматично оформление

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

Както можете да видите, Apple наистина е взела процесите на оптимизация от върха и това наистина се вижда в крайния продукт. Ако имате iPhone или iPad от миналата година, не очаквайте твърде много промени. Но ако притежавате устройство на две, три, четири години, определено промяната ще бъде повече от осезаема. Въпреки че iOS 12 в момента е в начален стадий, той вече работи значително по-добре от всяка версия на iOS 1 на моето първо поколение iPad Air.

.