GC.AddMemoryPressure(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ını, atık toplama zamanlarken dikkate alınması gereken büyük bir yönetilmeyen bellek ayırması konusunda bilgilendirmektedir.
public:
static void AddMemoryPressure(long bytesAllocated);
[System.Security.SecurityCritical]
public static void AddMemoryPressure(long bytesAllocated);
public static void AddMemoryPressure(long bytesAllocated);
[<System.Security.SecurityCritical>]
static member AddMemoryPressure : int64 -> unit
static member AddMemoryPressure : int64 -> unit
Public Shared Sub AddMemoryPressure (bytesAllocated As Long)
Parametreler
- bytesAllocated
- Int64
Ayrılan, yönetilmeyen belleğin artımlı 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.