Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Arka planda çalışan çöp toplama (GC) işlemi sırasında, 2. neslin toplanması devam ederken geçici nesiller (0 ve 1) gerektiğinde toplanır. Arka plan çöp toplama işlemi, iş istasyonu veya sunucu GC'sine bağlı olarak bir veya daha fazla ayrılmış iş parçacığında gerçekleştirilir ve yalnızca 2. nesil koleksiyonlar için geçerlidir.
Arka plan çöp toplama varsayılan olarak etkindir. .NET Framework uygulamalarında gcConcurrent yapılandırma ayarıyla veya .NET Core ve .NET 5 ve üzeri uygulamalarda System.GC.Concurrent ayarıyla etkinleştirilebilir veya devre dışı bırakılabilir.
Uyarı
Arka plan çöp toplama eşzamanlı çöp toplamanın yerini alır ve .NET Framework 4 ve sonraki sürümlerde kullanılabilir. .NET Framework 4'te yalnızca iş istasyonu çöp toplama için desteklenir. .NET Framework 4.5'den başlayarak, hem iş istasyonu hem de sunucu çöp toplama için arka plan çöp toplama kullanılabilir.
Arka plan çöp toplama sırasında kısa ömürlü nesillerle ilgili bir toplama işlemi, foreground çöp toplama olarak bilinir. Ön plan çöp toplama işlemleri gerçekleştiğinde, tüm yönetilen iş parçacıkları askıya alınır.
Arka plan çöp toplama işlemi devam ederken ve nesil 0’da yeterli sayıda nesne ayırdığınızda, CLR nesil 0 veya nesil 1 için ön plan çöp toplama işlemi gerçekleştirir. Ayrılmış arka plan çöp toplama iş parçacığı, sık sık güvenli noktalarda ön plan çöp toplama isteği olup olmadığını belirlemek için denetler. Varsa, ön plan çöp toplamanın gerçekleşebilmesi için arka plan koleksiyonu kendini askıya alır. Ön plan çöp toplama işlemi tamamlandıktan sonra, özel arka plan çöp toplama iş parçacıkları ve kullanıcı iş parçacıkları yeniden çalışmaya başlar.
Arka planda çöp toplama, eşzamanlı çöp toplama tarafından uygulanan ayırma kısıtlamalarını kaldırır çünkü arka plan çöp toplama sırasında geçici çöp toplama gerçekleşebilir. Arka plan çöp toplama kısa ömürlü nesillerdeki ölü nesneleri kaldırabilir. Ayrıca, 1. nesil çöp toplama sırasında gerekirse yığını genişletebilir.
Arka plan iş istasyonu ve sunucu GC karşılaştırması
.NET Framework 4.5'den başlayarak, sunucu GC'sinde arka plan çöp toplama özelliği kullanılabilir. Arka plan GC, sunucu çöp toplama için varsayılan moddur.
Arka plan sunucusu çöp toplama işlevleri arka plan iş istasyonu çöp toplamaya benzer, ancak birkaç fark vardır:
Arka plan iş istasyonu çöp toplama, ayrılmış bir arka plan çöp toplama iş parçacığını, arka plan sunucusu çöp toplama ise birden çok iş parçacığı kullanır. Genellikle her mantıksal işlemci için ayrılmış bir iş parçacığı vardır.
İş istasyonu arka plan atık toplama iş parçacığından farklı olarak, arka plan sunucusu GC iş parçacıkları zaman aşımına uğramaz.
Aşağıdaki çizimde ayrı, ayrılmış bir iş parçacığında gerçekleştirilen arka plan iş istasyonu çöp toplama işlemi gösterilmektedir:
Aşağıdaki çizimde ayrı, ayrılmış iş parçacıklarında gerçekleştirilen arka plan sunucu çöp toplama işlemi gösterilmektedir.
Eşzamanlı çöp toplama
Tavsiye
Bu bölüm şunlar için geçerlidir:
- İş istasyonu çöp toplama için .NET Framework 3.5 ve öncesi
- Sunucu çöp toplama için .NET Framework 4 ve öncesi
Eşzamanlı çöp, sonraki sürümlerde arka plan çöp toplama ile değiştirilir.
İş istasyonu veya sunucuda yapılan çöp toplama işlemlerinde, iş parçacıklarının toplama süresinin büyük bir bölümü boyunca çöp toplamayı gerçekleştiren ayrılmış iş parçacığıyla eşzamanlı olarak çalışabilmesini sağlayan eşzamanlı çöp toplamayı etkinleştirebilirsiniz. Bu seçenek yalnızca 2. nesildeki çöp toplamalarını etkiler; 0. ve 1. nesiller her zaman eşzamanlı olmayanlardır çünkü bunlar hızlı biter.
Eşzamanlı çöp toplama, bir koleksiyon için duraklamaları en aza indirerek etkileşimli uygulamaların daha hızlı yanıt vermesine olanak tanır. Yönetilen iş parçacıkları, eşzamanlı çöp toplama iş parçacığı çalışırken çoğu zaman çalışmaya devam edebilir. Bu tasarım, çöp toplama işlemi gerçekleşirken daha kısa duraklamalarla sonuçlanır.
Eş zamanlı çöp toplama işlemi ayrılmış bir iş parçacığında gerçekleştirilir. Varsayılan olarak, CLR hem tek işlemcili hem de çok işlemcili bilgisayarlarda eşzamanlı çöp toplamanın etkinleştirildiği iş istasyonu çöp toplamasını çalıştırır.
Aşağıdaki çizimde, bağımsız bir süreçte gerçekleştirilen eşzamanlı çöp toplama gösterilmektedir.