Junior — Middle
Ի՞նչ տեսակների են հիշողության արտահոսքերը և ինչպես դրանք հայտնաբերել։
sobes.tech AI
Պատասխան AI-ից
iOS-ում կան մի քանի տեսակի հիշողության արտահոսքներ՝
- Ճառագայթային հղումներ (պահպանման ցիկլեր)՝ երբ երկու օբյեկտներ միմյանց պահում են ուժեղ հղումներով, ինչը խոչընդոտում է նրանց ազատմանը։
- Արտահոսքներ սխալ օգտագործման պատճառով դելեգատների՝ եթե դելեգատը հայտարարվում է որպես ուժեղ հղում, դա կարող է հանգեցնել ցիկլի։
- Արտահոսքներ չազատագրված ռեսուրսների պատճառով՝ օրինակ, ժամացույցներ, ծանուցումների դիտորդներ, որոնք չեն հեռացվել։
Արտահոսքները հայտնաբերելու համար օգտագործվում են Xcode-ի գործիքները՝
- Instruments (Leaks և Allocations) — հետևում է այն օբյեկտներին, որոնք չեն ազատվում։
- Memory Graph Debugger — տեսողականացնում է օբյեկտների միջև կապերը և օգնում է գտնել ցիկլերը։
Օրինակ՝ եթե ViewController դասում կա ուժեղ հղում ժամացույցի վրա, որը չի կանգնեցնում և չի զրոյացնում, դա կարող է հանգեցնել արտահոսքի։