Rust

Memory Management

Stack ve heap, allocator, Drop trait, RAII, Rc döngülerinden kaynaklanan bellek sızıntıları, Pin<T>

20 mülakat soruları·
Senior
1

Rust'ta i32 veya bool gibi ilkel türlerdeki yerel değişkenler nerede saklanır?

Cevap

İlkel türlerdeki yerel değişkenler stack üzerinde saklanır. Stack, LIFO (Last In, First Out) prensibiyle çalıştığı için çok hızlı tahsis ve serbest bırakma sağlar. İlkel türlerin boyutu derleme zamanında bilindiğinden, derleyici mevcut fonksiyonun stack frame'inde gerekli alanı ayırabilir.

2

Tek bir sahibe sahip bir değeri heap üzerinde tahsis etmek için hangi smart pointer kullanılmalıdır?

Cevap

Box<T>, heap üzerinde tahsis için en basit smart pointer'dır. Tek sahipliği garanti eder ve Box scope'tan çıktığında belleği otomatik olarak serbest bırakır. Box, derleme zamanında boyutu bilinmeyen türler, stack üzerinde kopyalanmak istenmeyen büyük yapılar veya özyinelemeli türler için kullanışlıdır.

3

Rust'ta RAII (Resource Acquisition Is Initialization) deseni nedir?

Cevap

RAII, kaynakların (bellek, dosyalar, bağlantılar) bir nesnenin oluşturulması sırasında edinildiği ve yok edilmesi sırasında otomatik olarak serbest bırakıldığı bir desendir. Rust'ta bu, bir değer scope dışına çıktığında otomatik olarak çağrılan Drop trait'i aracılığıyla gerçekleştirilir. Bu desen, hiçbir kaynağın unutulmamasını sağlar ve bellek sızıntılarını önler.

4

Rust'ta Drop trait'i ne zaman otomatik olarak çağrılır?

5

Rust'ta Rc<T> ile nasıl bir bellek sızıntısı (memory leak) oluşturulabilir?

+17 mülakat soruları

Bir sonraki mülakatın için Rust'de uzmanlaş

Tüm sorulara, flashcards'a, teknik testlere, code review alıştırmalarına ve mülakat simülatörlerine eriş.

Ücretsiz başla