Sobes.tech
Junior — Middle

ARC эс тутумун эсептөө автоматтык режиминде шилтеме саноочу канча этапта жүргүзүлөт?

sobes.tech AI

AIден жооп

ARC (Automatic Reference Counting) аркылуу автоматтык эс тутум саноосу учурунда, шилтемелер санагычын башкаруу компиляция жана кодду ишке ашыруу учурунда болот.

  • Компиляция этабында, компилятор кодду талдап чыгып, автоматтык түрдө объекттерди белгилөө жана колдонуу операцияларынын айланасында шилтемелер санагычын көбөйтүү (retain) жана азайтуу (release) чакырууларын кошот.

  • Ишке ашырылуу учурунда, бул кошулган чакыруулар объекттердин жашоо циклин башкаруу үчүн колдонулат: санагычты көбөйтүп, объект сакталат; азайтып жана нөлгө жеткенде, объект бошотулат.

Ошентип, шилтемелер санагычын башкаруу жасырын жана автоматтык түрдө программаны ишке ашыруу учурунда болот, компилятор кошкон көрсөтмөлөрдүн аркасында.

Swiftте мисал:

class Person {}

func createPerson() {
    let p = Person() // ARC санагычты көбөйтөт
    // ... p колдонуу
} // функциядан чыгып жатканда, ARC санагычты азайтат жана эгер башка шилтемелер жок болсо, объект бошотулат

Бул иштеп чыгуучуга эс тутумду кол менен башкаруу жөнүндө ойлонбоого мүмкүндүк берет.