GC.RemoveMemoryPressure(Int64) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Çalışma zamanına, yönetilmeyen belleğin serbest bırakıldığını ve atık toplamayı zamanlarken artık dikkate alınması gerekmediğini bildirir.
public:
static void RemoveMemoryPressure(long bytesAllocated);
[System.Security.SecurityCritical]
public static void RemoveMemoryPressure(long bytesAllocated);
public static void RemoveMemoryPressure(long bytesAllocated);
[<System.Security.SecurityCritical>]
static member RemoveMemoryPressure : int64 -> unit
static member RemoveMemoryPressure : int64 -> unit
Public Shared Sub RemoveMemoryPressure (bytesAllocated As Long)
Parametreler
- bytesAllocated
- Int64
Serbest bırakılan yönetilmeyen bellek miktarı.
- Öznitelikler
Özel durumlar
bytesAllocated 0'dan küçük veya buna eşit.
-veya-
32 bit bir bilgisayarda, bytesAllocatedInt32.MaxValue değerinden büyüktür.
Açıklamalar
Yerel kaynakları yayınlamak için yaygın desen, bir türün sonlandırıcısı aracılığıyla yapılır. Yönetilen bir nesne yerel bellek kullanıyorsa, bu yerel belleği sonlandırıcısında serbest bırakır. Çöp toplayıcı yalnızca yönetilen bellek hakkında bilgi sahibidir ve bu bilgiye göre koleksiyonları zamanlar. Küçük bir yönetilen nesnenin büyük miktarda yerel bellek kullanımıyla ilişkilendirildiği ve bu yönetilen nesnenin artık 2. nesilde yer aldığı bir senaryo düşünün. 2. nesil GC bir süre gerçekleşmeyebilir, bu da büyük miktarda yerel belleğin bir sonraki 2. nesil gerçekleşene kadar serbest bırakılmayacağı anlamına gelir. Çalışma zamanı, bu senaryoya AddMemoryPressure yardımcı olmak için ve RemoveMemoryPressure yöntemlerini sağlar. Çalışma zamanı, bu API'lerin ne kadar bellek baskısı ekleyip kaldırıldığının iç kaydını tutar ve üretken kabul edilirse 2. nesil GC'yi tetikler. Bu nedenle bu GC'nin bir özelliği değil, çalışma zamanının GC'leri tetikleme amacıyla sağladığı bir özelliktir.
AddMemoryPressure ve RemoveMemoryPressure yöntemleri yalnızca yönetilmeyen kaynakları serbest bırakmak için sonlandırıcılara bağımlı olan türler için performansı geliştirir. Bu yöntemleri dispose desenini izleyen türlerde kullanmak gerekmez; burada sonlandırıcılar yönetilmeyen kaynakları yalnızca türündeki bir tüketicinin çağırmayı Disposeunutması durumunda temizlemek için kullanılır. Nesne sonlandırma ve atma düzeni hakkında daha fazla bilgi için bkz. Yönetilmeyen Kaynakları Temizleme.
En basit kullanım deseninde, yönetilen bir nesne oluşturucuda yönetilmeyen bellek ayırır ve bunu yönteminde Finalize serbest bırakır.
AddMemoryPressure Yönetilmeyen belleği ayırdıktan sonra yöntemini çağırın ve serbest bıraktıktan sonra yöntemini çağırınRemoveMemoryPressure.
Yönetilmeyen bellek ayırmanın yönetilen nesnenin ömrü boyunca önemli ölçüde değiştiği daha karmaşık senaryolarda, bu artımlı değişiklikleri çalışma zamanına iletmek için ve RemoveMemoryPressure yöntemlerini çağırabilirsinizAddMemoryPressure.
Dikkat
Eklediğiniz basınç miktarını tam olarak kaldırdığınızdan emin olmalısınız. Bunun başarısız olması, uzun süre çalışan uygulamalarda sistemin performansını olumsuz etkileyebilir.