Sobes.tech
Junior — Middle

Ի՞նչ տեսակների են հիշողության արտահոսքերը և ինչպես դրանք հայտնաբերել։

sobes.tech AI

Պատասխան AI-ից

iOS-ում կան մի քանի տեսակի հիշողության արտահոսքներ՝

  • Ճառագայթային հղումներ (պահպանման ցիկլեր)՝ երբ երկու օբյեկտներ միմյանց պահում են ուժեղ հղումներով, ինչը խոչընդոտում է նրանց ազատմանը։
  • Արտահոսքներ սխալ օգտագործման պատճառով դելեգատների՝ եթե դելեգատը հայտարարվում է որպես ուժեղ հղում, դա կարող է հանգեցնել ցիկլի։
  • Արտահոսքներ չազատագրված ռեսուրսների պատճառով՝ օրինակ, ժամացույցներ, ծանուցումների դիտորդներ, որոնք չեն հեռացվել։

Արտահոսքները հայտնաբերելու համար օգտագործվում են Xcode-ի գործիքները՝

  • Instruments (Leaks և Allocations) — հետևում է այն օբյեկտներին, որոնք չեն ազատվում։
  • Memory Graph Debugger — տեսողականացնում է օբյեկտների միջև կապերը և օգնում է գտնել ցիկլերը։

Օրինակ՝ եթե ViewController դասում կա ուժեղ հղում ժամացույցի վրա, որը չի կանգնեցնում և չի զրոյացնում, դա կարող է հանգեցնել արտահոսքի։