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.