Որ փուլում է կատարվում ARC հիշողության հաշվարկի ավտոմատ ռեժիմում հղման հաշվիչի կառավարումը?
sobes.tech AI
Պատասխան AI-ից
ARC (Automatic Reference Counting) ավտոմատ հիշողության հաշվարկի միջոցով, հղումների հաշվիչի կառավարումը կոմպիլացիայի և կոդի գործարկման ժամանակ տեղի է ունենում:
-
Կոմպիլացիայի փուլում, կոմպիլատորը վերլուծում է կոդը և ավտոմատ կերպով ավելացնում է կանչեր՝ բարձրացնելու (
retain) և նվազեցնելու (release) հղումների հաշվիչը՝ օբյեկտների նշանակման և օգտագործման գործողությունների շուրջ: -
Կատարողական ժամանակ, այս ավելացված կանչերը կառավարում են օբյեկտների կյանքի ցիկլը. բարձրացնելով հաշվիչը, օբյեկտը պահվում է; նվազեցնելով և հասնելով զրոյի, օբյեկտը ազատվում է:
Այսպիսով, հղումների հաշվիչի կառավարումը անուղղակի և ավտոմատ է ծրագրի գործարկման ժամանակ, շնորհիվ կոմպիլատորին ավելացված հրահանգների:
Swift-ում օրինակ՝
class Person {}
func createPerson() {
let p = Person() // ARC բարձրացնում է հաշվիչը
// ... օգտագործում p
} // ֆունկցիայի դուրս գալու ժամանակ, ARC նվազեցնում է հաշվիչը, և եթե այլ հղումներ չկան, օբյեկտը ազատվում է
Այսպիսով, ծրագրավորողը կարող է չմտածել հիշողության ձեռքով կառավարում մասին։