GC.AddMemoryPressure(Int64) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menginformasikan runtime alokasi besar memori tidak terkelola yang harus dipertimbangkan saat menjadwalkan pengumpulan sampah.
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)
Parameter
- bytesAllocated
- Int64
Jumlah inkremental memori tidak terkelola yang telah dialokasikan.
- Atribut
Pengecualian
bytesAllocated
kurang dari atau sama dengan 0.
-atau-
Pada komputer 32-bit, bytesAllocated
lebih besar dari Int32.MaxValue.
Keterangan
Dalam menentukan kapan harus menjadwalkan pengumpulan sampah, runtime memperhitungkan berapa banyak memori terkelola yang dialokasikan. Jika objek terkelola kecil mengalokasikan sejumlah besar memori yang tidak dikelola, runtime hanya memperhitungkan memori terkelola, dan dengan demikian meremehkan urgensi penjadwalan pengumpulan sampah. Metode ini AddMemoryPressure menginformasikan runtime tekanan tambahan ini pada memori sistem.
Metode AddMemoryPressure dan RemoveMemoryPressure meningkatkan performa hanya untuk jenis yang secara eksklusif bergantung pada finalizer untuk merilis sumber daya yang tidak terkelola. Tidak perlu menggunakan metode ini dalam jenis yang mengikuti pola buang, di mana finalizer digunakan untuk membersihkan sumber daya yang tidak dikelola hanya jika konsumen jenis lupa memanggil Dispose
. Untuk informasi selengkapnya tentang finalisasi objek dan pola buang, lihat Membersihkan Sumber Daya yang Tidak Dikelola.
Dalam pola penggunaan yang paling sederhana, objek terkelola mengalokasikan memori yang tidak dikelola di konstruktor dan melepaskannya dalam Finalize
metode .
AddMemoryPressure Panggil metode setelah mengalokasikan memori yang tidak dikelola, dan panggil RemoveMemoryPressure metode setelah merilisnya.
Dalam skenario yang lebih rumit, di mana alokasi memori yang tidak dikelola berubah secara substansial selama masa pakai objek terkelola, Anda dapat memanggil AddMemoryPressure metode dan RemoveMemoryPressure untuk mengomunikasikan perubahan inkremental ini ke runtime.
Perhatian
Anda harus memastikan bahwa Anda menghapus jumlah tekanan yang Anda tambahkan dengan tepat. Gagal melakukannya dapat berdampak buruk pada performa sistem dalam aplikasi yang berjalan untuk jangka waktu yang lama.