Փակել գովազդը

Արդեն տարեսկզբին Apple-ի ներկայացուցիչները նրանք պնդում էին, որ նոր iOS 12-ը հիմնականում կենտրոնանալու է օպտիմալացման վրա, և մենք պետք է սպասենք ևս մի քանի հիմնարար նորությունների մինչև հաջորդ տարի։ Մոտավորապես նույնն ասվեց երկուշաբթի օրը՝ iOS 12-ի մասին հատվածի ժամանակ: Այո, որոշ նորություններ իսկապես կհայտնվեն iOS-ի առաջիկա կրկնության մեջ, սակայն հիմնական դերը խաղում է օպտիմալացումը, որը հատկապես կուրախացնի հին մեքենաների սեփականատերերին ( այն մասին, թե ինչպես iOS 12-ը կյանք ներշնչեց իմ մեջ Դուք կկարողանաք կարդալ 1-ին սերնդի iPad Air-ն արդեն այս շաբաթավերջին): Երեկ WWDC ծրագրի շրջանակներում տեղի ունեցավ դասախոսություն, որտեղ ավելի մանրամասն բացատրվեց, թե ինչ է արել Apple-ը նոր համակարգը նկատելիորեն ավելի արագ աշխատելու համար։

Եթե ​​դուք իսկապես հետաքրքրված եք այս թեմայով և ցանկանում եք իմանալ, թե ինչպես են աշխատում iOS-ի որոշ տարրեր գործնականում, խորհուրդ եմ տալիս դիտել դասախոսության ձայնագրությունը։ Այն տևում է մոտ 40 րոպե և հասանելի է Apple-ի պաշտոնական կայքում վերնագրով Նիստ 202. Ինչ նորություն կա Cocoo Touch-ում. Եթե ​​չեք ցանկանում երեք քառորդ ժամ վատնել կոնֆերանսի ձայնագրությունը դիտելու վրա, կարող եք կարդալ ավելի հակիրճ սղագրություն. այստեղ, սակայն, որոշ չափով տեխնիկական է: Մնացածների համար ստորև կփորձեմ պարզեցված ամփոփում:

Դիտեք iOS 12-ի ցուցադրման պատկերները.

iOS 12-ով Apple-ը որոշեց կենտրոնանալ օպտիմալացման վրա, քանի որ շատ օգտատերեր դժգոհում էին վրիպազերծումից (հատկապես iOS 11-ի հետ կապված): Բացասական արձագանքների ճնշող մեծամասնությունը կապված է համակարգի և դրա անիմացիաների ինչ-որ «դանդաղության», «կցվածության» և «անհարթության» հետ։ Այսպիսով, Apple-ի ծրագրավորողները խորամուխ եղան հենց հիմունքների մեջ և հաղթահարեցին iOS-ի ամբողջ անիմացիոն համակարգը: Այս ջանքերը հիմնականում բաղկացած էին երեք հիմնական ուղղումներից, որոնք ստիպում են iOS 12-ն աշխատել այնպես, ինչպես անում է: Ծրագրավորողներին հաջողվել է բացահայտել թերությունները, որոնք առկա են iOS 7-ից սկսած:

1. Տվյալների պատրաստում

Առաջին փոփոխությունը, այսպես կոչված, Cell Pre-fetch API-ի օպտիմիզացումն է, որը պարզապես հոգ էր տանում տվյալների մի տեսակ պատրաստման մասին, նախքան համակարգի իրականում դրա կարիքը: Անկախ նրանից, թե դա պատկերներ, անիմացիաներ կամ այլ տվյալներ են, համակարգը պետք է նախապես նվագարկեր անհրաժեշտ ֆայլերը հիշողության մեջ այս API-ի միջոցով, որպեսզի դրանք հասանելի լինեին դրանց օգտագործման ժամանակ, և այդպիսով պրոցեսորի բեռնվածության մեջ թռիչքներ չլինեն, ինչը կառաջացնի: վերը նշված հեղուկության խնդիրները: Ինչպես պարզվեց այս ալգորիթմի մանրակրկիտ աուդիտի ժամանակ, այն այնքան էլ ճիշտ չի աշխատել։

Որոշ դեպքերում նա նախապես պատրաստել է տվյալները, որոշ դեպքերում՝ ոչ։ Այլ դեպքերում, համակարգը բեռնում էր տվյալները, թեև դրանք արդեն պատրաստված էին այս API-ի քեշում, և երբեմն տեղի էր ունենում մի տեսակ «կրկնակի բեռնում»: Այս ամենը առաջացրել է FPS-ի անկում անիմացիաների ժամանակ, կտրատելիս և համակարգի աշխատանքի այլ անհամապատասխանություններ:

2. Ակնթարթային կատարում

Երկրորդ փոփոխությունը սարքի հաշվողական միավորների էներգիայի կառավարման փոփոխությունն է՝ լինի դա պրոցեսոր, թե պրոցեսոր: Համակարգի ավելի վաղ տարբերակներում պրոցեսորից նկատելիորեն ավելի երկար էր պահանջվում՝ նկատելու ակտիվության աճի պահանջները և այդպիսով ավելացնելու իր գործառնական հաճախականությունները: Բացի այդ, պրոցեսորի այս արագացումը/դանդաղացումը տեղի ունեցավ աստիճանաբար, ուստի շատ դեպքերում պատահում էր, որ համակարգին անհրաժեշտ էր էներգիա ինչ-որ առաջադրանքի համար, բայց այն անմիջապես հասանելի չէր, և կրկին անկումներ եղան 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-ի ցանկացած տարբերակ իմ 11-ին սերնդի iPad Air-ում:

.