Դաս 23 – iOS Development: Memory Management

0

Memory management-ը նախնական շրջանում iOS-ում non-ARC (Automatic Reference Counting) էր, որտեղ մենք պետք է պահպանել և թողարել առարկաները: Հիմա այն աջակցում է ARC և կարիք չկա, որպեսզի պահպանենք ր թողարկենք օբյեկտները: Xcode-ը ավտոմատ կերպով անում է այդ քայլերը:

Հիշողության Մենեջմենթի Խնդիրներ

Ըստ Apple-ի թղթաբանության, հիշողության մենեեջմենթի երկու հիմնական խդիրնենրն են −

  • Ազատել կամ ծրագրավորել տվյալներ, որոնք դեռ օգտագործման մեջ են: Այդ պատճառ է հանդիսանում հիշողության կոռուպցիայի:
  • Տվյալների տեղ չազատելը, որոնք այլևս կարևոր չեն: Երբ հիշողությունը չի դատարկվում, այն հայտնի է որպես հիշողության արտահոսք: Արտահոսքերը պատճառ են հանդիսանում որպեսզի ձեր հավելվածը օգտագործի երբևէ աճող քանակությամբ հիշողություն:

Հիշողության Մենեջմենթի Կանոններ

  • Մեզ են պատկանում այն օբյեկտները, որոնք մենք ստեղծում ենք, և հետագայում պետք է թողարկենք դրանք, երբ այլևս պիտանի չեն:
  • Օգտագործեք Retain օբյեկտի սեփականություն ստանալու համար, որոնք չէիք ստեղծել: Այս օբյեկտները նունպես պետք է թողարկեք, երբ այլևս անհրաժեշտ չեն:
  • Մի թողարկեք այն օբյեկտները, որոնք ձեզ չեն պատկանում:

Հիշողության Գործածումը ARC-ում

You don’t need to use release and retain in ARC-ում կարիք չկա պահպանում և թողարկում օգտագործել: Բոլոր view controller-ների օբյեկտները կթողարկվեն, երբ view controller-ը հեռացվի: Նույնապես, ցանկացած օբյեկտի սուբ օբյեկտը կթողարկվի, երբ նրանք թողարկվեն: ՈՒշադրություն, եթե մյուս դասերը ուժեղ ռեֆերենս ունենան դեպի օբյեկտի դասը, ապա ամբողջ դասը չի թողարկվի:

Հիշողության Մենեջմենթի Գործիքներ

Մենք կարող ենք վերլուծել հիշողության օգտագործումը Xcode-ի գործիքների օգնությամբ: Այն ներառում է Activity Monitor, Allocation-ներ, Leak-եր, Zombie-ներ, և այլն:

Հիշողության Վերլուծման Քայլեր

Քայլ 1. Բացեք գոյություն ունեցող հավելված:

Քայլ 2. Ընտրեք Product և հետո Profile ինչպես ցուցադրված է ներքևում:

mm_profile

Քայլ 3. Ըտրեք Allocations հաջորդ էկրանում և սեղմեք Profile:

mm_profileselect

Քայլ 4. Կտեսնենք հիշողության տարանջատումը տարբեր օբյեկտների համար, ինչպես ցուցադրված է ներքևում:

Քայլ 5. Կարող եք փոխել view controller-ները և ստուգել, արդյոք հիշողությունը պատշաճ է թողարկված:

mm_instruments_allocations

Քայլ 6. Համապատասխանաբար, Allocation-ների փոխարեն, կարող ենք օգտագործել  Activity Monitor-ը՝ տեսնելու  տարանջատված ամողջական հիշողությունը հավելվածի համար:

mm_instruments_activitymonitor

Քայլ 7. Այս գործիքները օգնում են մուտք գործելու մեր հիշողության սպառում և տեղորոշում տեղեր, որտեղ հնարավոր բացթողումներ են եղել:

Հարգելի ընթերցող, խնդրում ենք չմոռանալ like տալ մեր ֆեյսբուքյան էջին, քանի որ նորությունների մեծ մասը առաջինը տեղադրվում է հենց այնտեղ։ Ինչպես նաև հետևեք մեզ այլ սոցիալական ցանցերում և, իհարկե, գրանցվեք մեր բլոգում։

Share.