Zatvori oglas

Već početkom godine predstavnici Apple-a tvrdili su, da će se novi iOS 12 fokusirati uglavnom na optimizaciju i da ćemo morati pričekati neke fundamentalnije vijesti do sljedeće godine. Prilično je isto rečeno na uvodnom predavanju u ponedjeljak, tokom sekcije o iOS-u 12. Da, neke novosti će se zaista pojaviti u nadolazećoj iteraciji iOS-a, ali glavnu ulogu ima optimizacija, što će posebno obradovati vlasnike starijih mašina ( o tome kako mi je iOS 12 udahnuo život Moći ćete čitati iPad Air prve generacije već ovog vikenda). Jučer je u okviru WWDC programa održano predavanje na kojem je detaljnije objašnjeno šta je Apple uradio da bi novi sistem radio osjetno brže.

Ako vas ova tema zaista zanima i želite znati kako pojedini elementi iOS-a funkcioniraju u praksi, preporučujem da pogledate snimak predavanja. Duga je oko 40 minuta i dostupna je na Appleovoj službenoj web stranici pod naslovom Sesija 202: Šta je novo u Cocoa Touchu. Ako ne želite da gubite tri četvrt sata gledajući snimak konferencije, možete pročitati sažetiji transkript ovdje, međutim, donekle je tehnički. Za vas ostale, pokušaću sa pojednostavljenim sažetkom u nastavku.

Pogledajte slike sa predstavljanja iOS 12:

Sa iOS 12, Apple je odlučio da se fokusira na optimizaciju, jer su se mnogi korisnici žalili na otklanjanje grešaka (posebno u vezi sa iOS 11). Velika većina negativnih reakcija odnosila se na neku vrstu "sporosti", "zaglavljenosti" i "neuglađenosti" sistema i njegovih animacija. Appleovi programeri su stoga ušli u same osnove i savladali čitav sistem animacije unutar iOS-a. Ovaj napor se prvenstveno sastojao od tri glavna podešavanja koja čine da iOS 12 radi onako kako radi. Programeri su uspjeli otkriti nedostatke koji su prisutni u iOS-u od iOS-a 7.

1. Priprema podataka

Prva promjena je optimizacija takozvanog Cell Pre-fetch API-ja, koji se jednostavno pobrinuo za neku vrstu pripreme podataka prije nego što je sistemu zaista bio potreban. Bilo da se radi o slikama, animacijama ili drugim podacima, sistem je morao unaprijed reproducirati potrebne datoteke u memoriji s ovim API-jem kako bi bili dostupni kada se koriste i na taj način ne bi došlo do skokova u opterećenju procesora koji bi uzrokovali gore pomenute probleme sa fluidnošću. Kako se pokazalo tokom detaljne revizije ovog algoritma, on nije funkcionisao sasvim ispravno.

U nekim slučajevima on je unaprijed pripremio podatke, u drugima nije. U drugim slučajevima, sistem je učitavao podatke iako su već bili pripremljeni u kešu ovog API-ja, a ponekad je došlo do svojevrsnog "dvostrukog učitavanja". Sve je to uzrokovalo pad FPS-a tokom animacija, seckanja i drugih nedoslednosti u radu sistema.

2. Trenutni učinak

Druga promjena je modifikacija upravljanja napajanjem računarskih jedinica u uređaju, bilo da se radi o CPU-u ili GPU-u. U ranijim verzijama sistema, procesoru je trebalo znatno više vremena da primijeti povećane zahtjeve za aktivnostima i tako poveća svoje radne frekvencije. Osim toga, ovo ubrzanje/usporavanje procesora odvijalo se postepeno, pa se u velikom broju slučajeva dešavalo da je sistemu potrebno napajanje za neki zadatak, ali ono nije bilo odmah dostupno, pa je opet dolazilo do pada FPS animacija itd. Ovo se mijenja u iOS 12, jer je tu krivulja performansi procesora podešena znatno agresivnije, a postepeno povećanje/smanjenje frekvencija je sada trenutno. Predstava bi stoga trebala biti dostupna u trenucima kada je potrebna.

3. Savršeniji automatski raspored

Treća promjena odnosi se na sučelje koje je Apple uveo u iOS 8. To je takozvani Auto-layout framework, koji je ušao u iOS u vrijeme kada je Apple počeo povećavati veličinu svojih iPhone ekrana. Okvir se pobrinuo da izgled korisničkog interfejsa bude ispravan bez obzira na tip i veličinu ekrana na kojem su podaci prikazani. To je svojevrsna štaka koja pomaže programerima da optimiziraju svoje aplikacije (ali ne samo njih, ovaj okvir je sastavni dio iOS sistema kao takvog i brine se o ispravnom prikazu svih dijelova korisničkog interfejsa) za nekoliko veličina ekrana. Osim toga, cijeli ovaj sistem je u velikoj mjeri automatiziran. Detaljnim ispitivanjem pokazalo se da je njegov rad prilično zahtjevan za sistemske resurse, a najveći utjecaji na performanse pojavili su se u iOS-u 11. U iOS-u 12, pomenuti alat je doživio značajan redizajn i optimizaciju, au svom sadašnjem obliku uticaj na rad sistema je znatno manji, što u velikoj meri oslobađa resurse u CPU/GPU za potrebe drugih aplikacija i alata.

Kao što vidite, Apple je zaista podigao procese optimizacije sa vrhunca i to se zaista vidi u konačnom proizvodu. Ako imate prošlogodišnji iPhone ili iPad, ne očekujte previše promjena. Ali ako posjedujete uređaj star dvije, tri, četiri godine, promjena će definitivno biti više nego primjetna. Iako je iOS 12 trenutno u ranoj fazi, već radi znatno bolje od bilo koje verzije iOS-a 1 na mojoj prvoj generaciji iPad Air-a.

.