0Pricing
Swift Academy · Ders

Yığın ve Öbek: Değerler Nerede Yaşar

Yapıların yığında, sınıfların öbekte nasıl yaşadığını ve bunun başarım etkilerini öğrenin.

Yığın ve Öbek: Değerler Nerede Yaşar, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 4 dersten oluşur.

Hoş Geldiniz

Swift değerlerinin bellekte nerede bulunduğunu, yani yığında mı yoksa öbekte mi olduğunu anlamak; performanslı ve öngörülebilir kod yazmak için çok önemlidir.

Yığın

Yığın, otomatik olarak yönetilen bitişik bir bellek bloğudur: • İşlev yerel değişkenleri ve parametreleri burada bulunur • Ayırma işlemi O(1)'dir; yalnızca bir işaretçi hareket ettirilir • Kapsam sona erdiğinde otomatik olarak serbest bırakılır • İş parçacığına özeldir; her iş parçacığının kendi yığını vardır

Öbek

Öbek, uzun ömürlü ayırmalar için paylaşılan bir havuzdur: • Ömürleri bir kapsamın ötesine uzandığında nesneler burada bulunur • Ayırma işlemi boş bellek bulmayı gerektirir ve daha maliyetlidir • Sınıflar için ARC tarafından yönetilir • İş parçacıkları arasında paylaşılır; eşzamanlama gerektirir

Yapı Türleri Yığında Bulunur

```swift func compute() { var pt = CGPoint(x: 3, y: 4) // on the stack pt.x += 1 } // pt freed automatically ``` Küçük yapı türleri kopyalanarak aktarılır; öbek ek yükü oluşmaz.

Sınıflar Öbekte Bulunur

```swift class Dog { var name: String init(name: String) { self.name = name } } var d = Dog(name: "Rex") // Dog instance on heap // 'd' is a pointer on the stack ```

Büyük Yapı Türleri Öbeği Kullanabilir

Diziler, dizeler ve büyük değer türleri gibi büyük yapı türleri, değer türü gibi davranmalarına rağmen dahili olarak COW ve öbek depolaması kullanır: ```swift var arr = [Int](repeating: 0, count: 10_000) // The array's buffer is on the heap; 'arr' itself is a stack value ```

Kapanışlarda Yakalama

Bir kapanış, kapsamdan daha uzun süre yaşaması gereken bir değer türü değişkenini yakaladığında Swift bu değişkeni öbekte kutular: ```swift var count = 0 let increment = { count += 1 } // count captured in a heap box increment() print(count) // 1 ```

Protokol Varoluşsal Türlerinin Kutulanması

Küçük değer türlerini `any Protocol` değişkenlerinde saklamak, öbek ayırmasına neden olabilir (varoluşsal kutulama): ```swift var shape: any Shape = Circle(radius: 5) // may allocate on heap ``` Küçük türler (≤3 sözcük) satır içine yerleştirilir; daha büyük türler kutulanır.

Ayırmaları Ölçme

Öbek ayırmalarını görmek için Instruments Ayırmalar şablonunu kullanın: 1. Profil oluşturma > Ayırmalar 2. Sınıfa veya kategoriye göre filtreleyin 3. `alloc` ve `dealloc` sayılarını izleyin Döngülerdeki yüksek `alloc` sayıları çoğu zaman beklenmeyen kutulamaya işaret eder.

Tasarımın Etkileri

• Kısa ömürlü ve veri tutan türler için yapı türlerini tercih edin; yığın hızı sağlar • Kimlik veya paylaşılan durum gerektiğinde sınıfları kullanın • Sıkı döngülerde ayırma yapmaktan kaçının; `reserveCapacity` ile önceden ayırın • İyileştirme yapmadan önce profil oluşturun; erken iyileştirme zaman kaybettirir

Hızlı Kontrol

Bir işlev kapsamı sona erdiğinde hangi bellek türü otomatik olarak serbest bırakılır?

Özet

Temel çıkarımlar: • Yığın: ucuz, otomatik, iş parçacığına özel, değer türleri • Öbek: esnek, ARC tarafından yönetilen, başvuru türleri • Büyük yapı türleri dahili öbek arabellekleri kullanır (COW) • Değişkenleri yakalayan kapanışlar onları öbekte kutular • Beklenmeyen öbek baskısını tespit etmek için Instruments Ayırmalar aracını kullanın Sıradaki konu: değiştirme, paylaşım ve beklenmeyen takma ad paylaşımı.

Sıkça Sorulan Sorular

“Yığın ve Öbek: Değerler Nerede Yaşar” dersi ücretsiz mi?

Evet — “Yığın ve Öbek: Değerler Nerede Yaşar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 4 dersten oluşur.

“Yığın ve Öbek: Değerler Nerede Yaşar” dersinde ne öğreneceğim?

Yapıların yığında, sınıfların öbekte nasıl yaşadığını ve bunun başarım etkilerini öğrenin. Swift Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Swift Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Swift Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Yığın ve Öbek: Değerler Nerede Yaşar” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Swift Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Swift Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Yığın ve Öbek: Değerler Nerede Yaşar
  2. Değiştirme, Paylaşım ve Beklenmedik Takma Adlandırma
  3. Karma Değer/Başvuru Grafikleri
  4. Değer Anlambilimi için API Tasarlama
← Swift Academy Sayfasına Dön