.NET

Memory Management & GC

Garbage Collection, nesiller, sonlandırma (finalization), IDisposable, using ifadesi, bellek sızıntıları, profiling

22 mülakat soruları·
Senior
1

.NET'teki Garbage Collector (GC) nedir?

Cevap

Garbage Collector, managed heap üzerindeki kullanılmayan nesneleri serbest bırakan otomatik bir bellek yönetimi mekanizmasıdır. Belleğin manuel olarak serbest bırakılması gereken C/C++'ın aksine, bellek sızıntılarını önlemek için arka planda otomatik olarak çalışır. GC, nesne referanslarını analiz eder ve uygulamanın root'larından artık erişilemeyen nesneleri toplar.

2

.NET'teki Garbage Collector'ın üç nesli nelerdir?

Cevap

.NET GC üç nesil kullanır: Gen0 (genç, kısa ömürlü nesneler, sık toplanır), Gen1 (orta ömürlü nesneler, Gen0 ile Gen2 arasında tampon bölge) ve Gen2 (uzun ömürlü nesneler, maliyetli olduğu için nadiren toplanır). Bu nesil tabanlı sistem, nesnelerin %80-90'ını oluşturan kısa ömürlü nesneleri (Gen0) önce toplayarak ve kalıcı nesneleri (Gen2) sık sık taramaktan kaçınarak performansı optimize eder.

3

.NET'teki Large Object Heap (LOH) nedir?

Cevap

Large Object Heap, 85 KB veya daha büyük nesneler için ayrı bir bellek alanıdır ve mantıksal olarak Gen2'ye aittir. Düzenli olarak sıkıştırılan (compaction) standart heap'in aksine, LOH büyük nesneleri kopyalama maliyetinden kaçınmak için varsayılan olarak sıkıştırılMAZ. Bu, bellek parçalanmasına neden olabilir. .NET 4.5.1'den itibaren LOH sıkıştırması GCSettings.LargeObjectHeapCompactionMode ile manuel olarak etkinleştirilebilir.

4

.NET'teki IDisposable deseninin rolü nedir?

5

C#'ta using deyimi ne yapar?

+19 mülakat soruları

Bir sonraki mülakatın için .NET'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