GC.TryStartNoGCRegion Metode

Definisi

Upaya untuk melarang pengumpulan sampah selama eksekusi jalur kritis.

Overload

Nama Deskripsi
TryStartNoGCRegion(Int64, Int64, Boolean)

Upaya untuk melarang pengumpulan sampah selama eksekusi jalur penting jika jumlah memori tertentu tersedia untuk tumpukan objek besar dan tumpukan objek kecil, dan mengontrol apakah pengumpul sampah melakukan pengumpulan sampah pemblokiran penuh jika memori yang tidak cukup pada awalnya tersedia.

TryStartNoGCRegion(Int64, Int64)

Upaya untuk melarang pengumpulan sampah selama eksekusi jalur kritis jika jumlah memori tertentu tersedia untuk tumpukan objek besar dan tumpukan objek kecil.

TryStartNoGCRegion(Int64, Boolean)

Upaya untuk melarang pengumpulan sampah selama eksekusi jalur penting jika jumlah memori tertentu tersedia, dan mengontrol apakah pengumpul sampah melakukan pengumpulan sampah pemblokiran penuh jika memori yang tidak cukup pada awalnya tersedia.

TryStartNoGCRegion(Int64)

Upaya untuk melarang pengumpulan sampah selama eksekusi jalur penting jika jumlah memori yang ditentukan tersedia.

Keterangan

Important

Anda tidak dapat menumpuk panggilan ke TryStartNoGCRegion metode , dan Anda hanya boleh memanggil EndNoGCRegion metode jika runtime saat ini tidak dalam mode latensi wilayah GC. Dengan kata lain, Anda tidak boleh memanggil TryStartNoGCRegion beberapa kali (setelah panggilan metode pertama, panggilan berikutnya tidak akan berhasil), dan Anda seharusnya tidak mengharapkan panggilan untuk EndNoGCRegion berhasil hanya karena panggilan TryStartNoGCRegion pertama berhasil.

TryStartNoGCRegion(Int64, Int64, Boolean)

Sumber:
GC.CoreCLR.cs
Sumber:
GC.CoreCLR.cs
Sumber:
GC.CoreCLR.cs
Sumber:
GC.CoreCLR.cs
Sumber:
GC.CoreCLR.cs

Upaya untuk melarang pengumpulan sampah selama eksekusi jalur penting jika jumlah memori tertentu tersedia untuk tumpukan objek besar dan tumpukan objek kecil, dan mengontrol apakah pengumpul sampah melakukan pengumpulan sampah pemblokiran penuh jika memori yang tidak cukup pada awalnya tersedia.

public:
 static bool TryStartNoGCRegion(long totalSize, long lohSize, bool disallowFullBlockingGC);
public static bool TryStartNoGCRegion(long totalSize, long lohSize, bool disallowFullBlockingGC);
[System.Security.SecurityCritical]
public static bool TryStartNoGCRegion(long totalSize, long lohSize, bool disallowFullBlockingGC);
static member TryStartNoGCRegion : int64 * int64 * bool -> bool
[<System.Security.SecurityCritical>]
static member TryStartNoGCRegion : int64 * int64 * bool -> bool
Public Shared Function TryStartNoGCRegion (totalSize As Long, lohSize As Long, disallowFullBlockingGC As Boolean) As Boolean

Parameter

totalSize
Int64

Jumlah memori dalam byte untuk dialokasikan tanpa memicu pengumpulan sampah. totalSize - lohSize harus kurang dari atau sama dengan ukuran segmen ephemeral. Untuk informasi tentang ukuran segmen sementara, lihat bagian "Generasi sementara dan segmen" di artikel Dasar-Dasar Pengumpulan Sampah .

lohSize
Int64

Jumlah byte yang totalSize digunakan untuk alokasi timbunan objek besar (LOH).

disallowFullBlockingGC
Boolean

true untuk menghilangkan pengumpulan sampah pemblokiran penuh jika pengumpul sampah awalnya tidak dapat mengalokasikan memori yang ditentukan pada tumpukan objek kecil (SOH) dan LOH; jika tidak, false.

Mengembalikan

true jika runtime dapat menerapkan jumlah memori yang diperlukan dan pengumpul sampah dapat memasuki mode latensi wilayah GC; jika tidak, false.

Atribut

Pengecualian

totalSize - lohSize melebihi ukuran segmen ephemeral.

Proses ini sudah dalam mode latensi wilayah GC.

Keterangan

Metode ini TryStartNoGCRegion(Int64, Int64, Boolean) mencoba menempatkan pengumpul sampah tanpa mode latensi wilayah GC, yang melarang pengumpulan sampah sementara aplikasi menjalankan wilayah kode penting. Jika runtime tidak dapat awalnya mengalokasikan jumlah memori yang diminta dan disallowFullBlockingGC argumennya adalah false, pengumpul sampah melakukan pengumpulan sampah pemblokiran penuh dalam upaya untuk membebaskan memori tambahan; jika tidak, alokasi gagal, dan metode mengembalikan false. Pengumpul sampah tidak memasuki mode latensi wilayah GC jika mampu mengalokasikan lohSize untuk LOH dan totalSize - lohSize untuk tumpukan objek kecil (SOH).

lohSize harus cukup besar untuk menangani semua alokasi memori yang terjadi di jalur kritis untuk LOH, dan totalSize - lohSize harus cukup besar untuk menangani semua alokasi memori yang terjadi di jalur kritis untuk SOH. Ini termasuk alokasi oleh aplikasi, serta alokasi yang dilakukan runtime atas nama aplikasi.

Pengaturan disallowFullBlockingGC ke true untuk mencegah pengumpulan sampah pemblokiran penuh jika memori yang awalnya tidak cukup tersedia paling berguna dalam skenario penyeimbangan beban: satu sistem dapat memanggil metode ini dan melaporkan dirinya sebagai siap untuk menerima permintaan jika kembali true, dan meminta penyeimbang muatan mengalihkan permintaan ke sistem lain jika mengembalikan false. Kemudian dapat melakukan pengumpulan sampah pemblokiran penuh ketika tidak menangani permintaan dengan memanggil Collect(Int32, GCCollectionMode, Boolean, Boolean) metode .

Important

Anda tidak dapat menumpuk panggilan ke TryStartNoGCRegion metode , dan Anda hanya boleh memanggil EndNoGCRegion metode jika runtime saat ini tidak dalam mode latensi wilayah GC. Dengan kata lain, Anda tidak boleh memanggil TryStartNoGCRegion beberapa kali (setelah panggilan metode pertama, panggilan berikutnya tidak akan berhasil), dan Anda seharusnya tidak mengharapkan panggilan untuk EndNoGCRegion berhasil hanya karena panggilan TryStartNoGCRegion pertama berhasil.

Anda keluar dari mode tidak ada latensi wilayah GC dengan memanggil EndNoGCRegion metode .

Lihat juga

Berlaku untuk

TryStartNoGCRegion(Int64, Int64)

Sumber:
GC.CoreCLR.cs
Sumber:
GC.CoreCLR.cs
Sumber:
GC.CoreCLR.cs
Sumber:
GC.CoreCLR.cs
Sumber:
GC.CoreCLR.cs

Upaya untuk melarang pengumpulan sampah selama eksekusi jalur kritis jika jumlah memori tertentu tersedia untuk tumpukan objek besar dan tumpukan objek kecil.

public:
 static bool TryStartNoGCRegion(long totalSize, long lohSize);
public static bool TryStartNoGCRegion(long totalSize, long lohSize);
[System.Security.SecurityCritical]
public static bool TryStartNoGCRegion(long totalSize, long lohSize);
static member TryStartNoGCRegion : int64 * int64 -> bool
[<System.Security.SecurityCritical>]
static member TryStartNoGCRegion : int64 * int64 -> bool
Public Shared Function TryStartNoGCRegion (totalSize As Long, lohSize As Long) As Boolean

Parameter

totalSize
Int64

Jumlah memori dalam byte untuk dialokasikan tanpa memicu pengumpulan sampah. totalSize - lohSize harus kurang dari atau sama dengan ukuran segmen ephemeral. Untuk informasi tentang ukuran segmen sementara, lihat bagian "Generasi sementara dan segmen" di artikel Dasar-Dasar Pengumpulan Sampah .

lohSize
Int64

Jumlah byte yang totalSize digunakan untuk alokasi timbunan objek besar (LOH).

Mengembalikan

true jika runtime dapat menerapkan jumlah memori yang diperlukan dan pengumpul sampah dapat memasuki mode latensi wilayah GC; jika tidak, false.

Atribut

Pengecualian

totalSize - lohSize melebihi ukuran segmen ephemeral.

Proses ini sudah dalam mode latensi wilayah GC.

Keterangan

Metode ini TryStartNoGCRegion(Int64, Int64) mencoba menempatkan pengumpul sampah tanpa mode latensi wilayah GC, yang melarang pengumpulan sampah sementara aplikasi menjalankan wilayah kode penting. Jika runtime tidak dapat mengalokasikan jumlah memori yang diminta, pengumpul sampah melakukan pengumpulan sampah pemblokiran penuh dalam upaya untuk membebaskan memori tambahan. Pengumpul sampah tidak memasuki mode latensi wilayah GC jika mampu mengalokasikan lohSize untuk LOH dan totalSize - lohSize untuk tumpukan objek kecil (SOH).

lohSize harus cukup besar untuk menangani semua alokasi memori yang terjadi di jalur kritis untuk LOH, dan totalSize - lohSize harus cukup besar untuk menangani semua alokasi memori yang terjadi di jalur kritis untuk SOH. Ini termasuk alokasi oleh aplikasi, serta alokasi yang dilakukan runtime atas nama aplikasi.

Important

Anda tidak dapat menumpuk panggilan ke TryStartNoGCRegion metode , dan Anda hanya boleh memanggil EndNoGCRegion metode jika runtime saat ini tidak dalam mode latensi wilayah GC. Dengan kata lain, Anda tidak boleh memanggil TryStartNoGCRegion beberapa kali (setelah panggilan metode pertama, panggilan berikutnya tidak akan berhasil), dan Anda seharusnya tidak mengharapkan panggilan untuk EndNoGCRegion berhasil hanya karena panggilan TryStartNoGCRegion pertama berhasil.

Anda keluar dari mode tidak ada latensi wilayah GC dengan memanggil EndNoGCRegion metode .

Lihat juga

Berlaku untuk

TryStartNoGCRegion(Int64, Boolean)

Sumber:
GC.CoreCLR.cs
Sumber:
GC.CoreCLR.cs
Sumber:
GC.CoreCLR.cs
Sumber:
GC.CoreCLR.cs
Sumber:
GC.CoreCLR.cs

Upaya untuk melarang pengumpulan sampah selama eksekusi jalur penting jika jumlah memori tertentu tersedia, dan mengontrol apakah pengumpul sampah melakukan pengumpulan sampah pemblokiran penuh jika memori yang tidak cukup pada awalnya tersedia.

public:
 static bool TryStartNoGCRegion(long totalSize, bool disallowFullBlockingGC);
public static bool TryStartNoGCRegion(long totalSize, bool disallowFullBlockingGC);
[System.Security.SecurityCritical]
public static bool TryStartNoGCRegion(long totalSize, bool disallowFullBlockingGC);
static member TryStartNoGCRegion : int64 * bool -> bool
[<System.Security.SecurityCritical>]
static member TryStartNoGCRegion : int64 * bool -> bool
Public Shared Function TryStartNoGCRegion (totalSize As Long, disallowFullBlockingGC As Boolean) As Boolean

Parameter

totalSize
Int64

Jumlah memori dalam byte untuk dialokasikan tanpa memicu pengumpulan sampah. Ini harus kurang dari atau sama dengan ukuran segmen ephemeral. Untuk informasi tentang ukuran segmen sementara, lihat bagian "Generasi sementara dan segmen" di artikel Dasar-Dasar Pengumpulan Sampah .

disallowFullBlockingGC
Boolean

true untuk menghilangkan pengumpulan sampah pemblokiran penuh jika pengumpul sampah awalnya tidak dapat mengalokasikan totalSize byte; jika tidak, false.

Mengembalikan

true jika runtime dapat menerapkan jumlah memori yang diperlukan dan pengumpul sampah dapat memasuki mode latensi wilayah GC; jika tidak, false.

Atribut

Pengecualian

totalSize melebihi ukuran segmen ephemeral.

Proses ini sudah dalam mode latensi wilayah GC.

Keterangan

Metode ini TryStartNoGCRegion(Int64, Boolean) mencoba menempatkan pengumpul sampah tanpa mode latensi wilayah GC, yang melarang pengumpulan sampah sementara aplikasi menjalankan wilayah kode penting. Jika runtime tidak dapat awalnya mengalokasikan jumlah memori yang diminta dan disallowFullBlockingGC argumennya adalah false, pengumpul sampah melakukan pengumpulan sampah pemblokiran penuh dalam upaya untuk membebaskan memori tambahan; jika tidak, alokasi gagal, dan metode mengembalikan false. Pengumpul sampah tidak memasuki mode latensi wilayah GC jika mampu mengalokasikan jumlah memori yang diperlukan, yang dalam hal ini sebenarnya adalah 2 * totalSize (ia mencoba mengalokasikan totalSize untuk tumpukan objek kecil dan totalSize untuk tumpukan objek besar).

totalSize harus cukup besar untuk menangani semua alokasi memori yang terjadi di jalur kritis. Ini termasuk alokasi oleh aplikasi, serta alokasi yang dilakukan runtime atas nama aplikasi.

Pengaturan disallowFullBlockingGC ke true untuk mencegah pengumpulan sampah pemblokiran penuh jika memori yang awalnya tidak cukup tersedia paling berguna dalam skenario penyeimbangan beban: satu sistem dapat memanggil metode ini dan melaporkan dirinya sebagai siap untuk menerima permintaan jika kembali true, dan meminta penyeimbang muatan mengalihkan permintaan ke sistem lain jika mengembalikan false. Kemudian dapat melakukan pengumpulan sampah pemblokiran penuh ketika tidak menangani permintaan dengan memanggil Collect(Int32, GCCollectionMode, Boolean, Boolean) metode .

Important

Anda tidak dapat menumpuk panggilan ke TryStartNoGCRegion metode , dan Anda hanya boleh memanggil EndNoGCRegion metode jika runtime saat ini tidak dalam mode latensi wilayah GC. Dengan kata lain, Anda tidak boleh memanggil TryStartNoGCRegion beberapa kali (setelah panggilan metode pertama, panggilan berikutnya tidak akan berhasil), dan Anda seharusnya tidak mengharapkan panggilan untuk EndNoGCRegion berhasil hanya karena panggilan TryStartNoGCRegion pertama berhasil.

Anda keluar dari mode tidak ada latensi wilayah GC dengan memanggil EndNoGCRegion metode .

Lihat juga

Berlaku untuk

TryStartNoGCRegion(Int64)

Sumber:
GC.CoreCLR.cs
Sumber:
GC.CoreCLR.cs
Sumber:
GC.CoreCLR.cs
Sumber:
GC.CoreCLR.cs
Sumber:
GC.CoreCLR.cs

Upaya untuk melarang pengumpulan sampah selama eksekusi jalur penting jika jumlah memori yang ditentukan tersedia.

public:
 static bool TryStartNoGCRegion(long totalSize);
public static bool TryStartNoGCRegion(long totalSize);
[System.Security.SecurityCritical]
public static bool TryStartNoGCRegion(long totalSize);
static member TryStartNoGCRegion : int64 -> bool
[<System.Security.SecurityCritical>]
static member TryStartNoGCRegion : int64 -> bool
Public Shared Function TryStartNoGCRegion (totalSize As Long) As Boolean

Parameter

totalSize
Int64

Jumlah memori dalam byte untuk dialokasikan tanpa memicu pengumpulan sampah. Ini harus kurang dari atau sama dengan ukuran segmen ephemeral. Untuk informasi tentang ukuran segmen sementara, lihat bagian "Generasi sementara dan segmen" di artikel Dasar-Dasar Pengumpulan Sampah .

Mengembalikan

true jika runtime dapat menerapkan jumlah memori yang diperlukan dan pengumpul sampah dapat memasuki mode latensi wilayah GC; jika tidak, false.

Atribut

Pengecualian

totalSize melebihi ukuran segmen ephemeral.

Proses ini sudah dalam mode latensi wilayah GC.

Keterangan

Metode ini TryStartNoGCRegion(Int64) mencoba menempatkan pengumpul sampah tanpa mode latensi wilayah GC, yang melarang pengumpulan sampah sementara aplikasi menjalankan wilayah kode penting. Jika runtime tidak dapat mengalokasikan jumlah memori yang diminta, pengumpul sampah melakukan pengumpulan sampah pemblokiran penuh dalam upaya untuk membebaskan memori tambahan. Pengumpul sampah tidak memasuki mode latensi wilayah GC jika mampu mengalokasikan jumlah memori yang diperlukan, yang dalam hal ini sebenarnya 2 * totalSize byte (ia mencoba mengalokasikan totalSize byte untuk tumpukan objek kecil dan totalSize byte untuk tumpukan objek besar).

totalSize harus cukup besar untuk menangani semua alokasi memori yang terjadi di jalur kritis. Ini termasuk alokasi oleh aplikasi, serta alokasi yang dilakukan runtime atas nama aplikasi.

Important

Anda tidak dapat menumpuk panggilan ke TryStartNoGCRegion metode , dan Anda hanya boleh memanggil EndNoGCRegion metode jika runtime saat ini tidak dalam mode latensi wilayah GC. Dengan kata lain, Anda tidak boleh memanggil TryStartNoGCRegion beberapa kali (setelah panggilan metode pertama, panggilan berikutnya tidak akan berhasil), dan Anda seharusnya tidak mengharapkan panggilan untuk EndNoGCRegion berhasil hanya karena panggilan TryStartNoGCRegion pertama berhasil.

Anda keluar dari mode tidak ada latensi wilayah GC dengan memanggil EndNoGCRegion metode .

Lihat juga

Berlaku untuk