Sobes.tech
Junior — Middle

Swift'teki çöp toplayıcı mekanizmasını ve belleği nasıl yönettiğini açıklayabilir misiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Swift'te bazı diğer dillerde olduğu gibi klasik bir Çöp Toplayıcı (Garbage Collector) yoktur. Bunun yerine, otomatik referans sayımı (ARC - Automatic Reference Counting) mekanizması kullanılır.

ARC şu şekilde çalışır: Bellekteki her nesnenin bir referans sayacı vardır, bu sayaç yeni bir referans oluşturulduğunda artar ve referans silindiğinde veya nil olduğunda azalır. Bir nesnenin referans sayacı sıfıra ulaştığında, nesne otomatik olarak bellekten kaldırılır.

Örnek:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
}

var person1: Person? = Person(name: "Иван")
var person2 = person1 // referans sayısı artar
person1 = nil // sayısı azalır, ancak nesne yaşamaya devam eder çünkü person2 ona referans verir
person2 = nil // sayısı 0 olur ve nesne silinir

Bu şekilde, Swift'te bellek yönetimi otomatik olarak gerçekleşir, manuel çöp toplayıcı çağrısına gerek kalmaz, bu da performansı artırır ve doğru kullanıldığında bellek sızıntısı olasılığını azaltır.