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.
Çöp toplayıcı kendi kendine ayarlıdır ve çok çeşitli senaryolarda çalışabilir. Ancak, iş yükünün özelliklerine göre çöp toplama türünü ayarlayabilirsiniz . CLR aşağıdaki çöp toplama türlerini sağlar:
İstemci uygulamaları için tasarlanmış iş istasyonu çöp yönetimi (GC). Tek başına uygulamalar için varsayılan GC çeşididir. Örneğin, ASP.NET tarafından barındırılan uygulamalar için host, varsayılan GC türünü belirler.
İş istasyonu çöp toplama eşzamanlı veya eşzamanlı olmayan şekilde yapılabilir. Eşzamanlı (veya arka plan) çöp toplama, yönetilen iş parçacıklarının bir çöp toplama sırasında işlemlere devam etmelerini sağlar. Arka plan çöp toplama , .NET Framework 4 ve sonraki sürümlerde eşzamanlı çöp toplamanın yerini alır.
Yüksek aktarım hızı ve ölçeklenebilirlik gerektiren sunucu uygulamalarına yönelik sunucu çöp toplama.
.NET Core'da, sunucu çöp toplama eşzamanlı olmayan veya arka planda olabilir.
.NET Framework 4.5 ve sonraki sürümlerde, sunucu çöp toplama eşzamanlı olmayan veya arka planda olabilir. .NET Framework 4 ve önceki sürümlerde, sunucu çöp toplama işlemi eşzamanlı değildir.
Aşağıdaki çizimde, bir sunucuda çöp toplama işlemini gerçekleştiren ayrılmış iş parçacıkları gösterilmektedir:
Performansla ilgili dikkat edilmesi gerekenler
İş İstasyonu GC
Çalışma istasyonu çöp toplama mekanizması için iş parçacığı kullanımı ve performans ile ilgili dikkat edilmesi gerekenler aşağıdaki gibidir:
Toplama, çöp toplamayı tetikleyen kullanıcı iş parçacığında gerçekleşir ve aynı önceliğe sahip kalır. Kullanıcı iş parçacıkları normalde normal önceliğe göre çalıştığından, atık toplayıcının (normal öncelikli iş parçacığında çalışan) CPU süresi için diğer iş parçacıklarıyla rekabet etmesi gerekir. (Yerel dildeki kodu çalıştıran iş parçacıkları, sunucu ya da iş istasyonu çevresinde çöp toplama işlemleri sırasında askıya alınmaz.)
İş istasyonu çöp toplama işlemi her zaman yapılandırma ayarından bağımsız olarak yalnızca bir mantıksal CPU'ya sahip bir bilgisayarda kullanılır.
Sunucu GC
Aşağıda, sunucu çöp toplama için iş parçacığı yönetimi ve performansla ilgili dikkate alınması gereken hususlar yer alır.
Koleksiyon birden çok ayrılmış iş parçacığında gerçekleşir. Windows'da bu iş parçacıkları öncelik düzeyi
THREAD_PRIORITY_HIGHEST
'da çalışır.Her mantıksal CPU için çöp yönetimini gerçekleştirmek amacıyla bir yığın ve özel bir iş parçacığı sağlanır ve yığınlar aynı anda toplanır. Her yığın küçük bir nesne yığını ve büyük bir nesne yığını içerir ve tüm yığınlara kullanıcı koduyla erişilebilir. Farklı yığınlardaki nesneler birbirine referans verebilir.
Birden çok çöp toplama iş parçacığı birlikte çalıştığından, sunucu çöp toplama işlemi aynı boyuttaki yığındaki iş istasyonu çöp toplama işlemine göre daha hızlıdır.
Sunucu çöp toplama genellikle daha büyük boyut segmentlerine sahiptir. Ancak bu yalnızca genelleştirmedir: segment boyutu uygulamaya özgüdür ve değiştirilebilir. Uygulamanızı ayarlarken çöp toplayıcı tarafından ayrılan kesimlerin boyutu hakkında varsayımlarda bulunmayın.
Sunucu çöp toplaması yoğun kaynak kullanımlı olabilir. Örneğin, dört mantıksal CPU'su olan bir bilgisayarda çalışan sunucu GC kullanan 12 işlem olduğunu düşünün. Tüm işlemler aynı anda çöp toplama işlemi gerçekleşirse, aynı mantıksal CPU üzerinde zamanlanmış 12 iş parçacığı olacağından birbirleriyle çakışırlar. İşlemler etkinse, hepsinin sunucu GC'sini kullanmasını sağlamak iyi bir fikir değildir.
Bir uygulamanın yüzlerce örneğini çalıştırıyorsanız, eşzamanlı çöp toplama devre dışı bırakılmış olarak iş istasyonu çöp toplamayı kullanmayı göz önünde bulundurun. Bu, performansı geliştirebilecek daha az bağlam geçişiyle sonuçlanır.