GC.TryStartNoGCRegion Methode

Definition

Versucht, die Garbage Collection während der Ausführung eines kritischen Pfads zu verbieten.

Überlädt

Name Beschreibung
TryStartNoGCRegion(Int64, Int64, Boolean)

Versucht, die Garbage Collection während der Ausführung eines kritischen Pfads zu verbieten, wenn eine angegebene Speichermenge für den Heap des großen Objekts und den kleinen Objekt heap verfügbar ist, und steuert, ob der Garbage Collector eine vollständige Blockierung der Garbage Collection durchführt, wenn nicht genügend Arbeitsspeicher anfänglich verfügbar ist.

TryStartNoGCRegion(Int64, Int64)

Versucht, die Garbage Collection während der Ausführung eines kritischen Pfads zu verbieten, wenn eine angegebene Speichermenge für den Heap des großen Objekts und den Heap für kleine Objekte verfügbar ist.

TryStartNoGCRegion(Int64, Boolean)

Versucht, die Garbage Collection während der Ausführung eines kritischen Pfads zu verbieten, wenn eine angegebene Speichermenge verfügbar ist, und steuert, ob der Garbage Collector eine vollständige Blockierung der Garbage Collection durchführt, wenn nicht genügend Arbeitsspeicher anfänglich verfügbar ist.

TryStartNoGCRegion(Int64)

Versucht, die Garbage Collection während der Ausführung eines kritischen Pfads zu verbieten, wenn eine angegebene Speichermenge verfügbar ist.

Hinweise

Important

Sie können Aufrufe der TryStartNoGCRegion-Methode nicht verschachteln und sollten die EndNoGCRegion-Methode nur aufrufen, wenn sich die Laufzeit aktuell im Latenzmodus der no GC Region befindet. Mit anderen Worten, Sie sollten nicht mehrmals aufrufen TryStartNoGCRegion (nach dem ersten Methodenaufruf werden nachfolgende Aufrufe nicht erfolgreich ausgeführt), und Sie sollten nicht erwarten, dass Aufrufe EndNoGCRegion erfolgreich ausgeführt werden, nur weil der erste Aufruf erfolgreich war TryStartNoGCRegion .

TryStartNoGCRegion(Int64, Int64, Boolean)

Quelle:
GC.CoreCLR.cs
Quelle:
GC.CoreCLR.cs
Quelle:
GC.CoreCLR.cs
Quelle:
GC.CoreCLR.cs
Quelle:
GC.CoreCLR.cs

Versucht, die Garbage Collection während der Ausführung eines kritischen Pfads zu verbieten, wenn eine angegebene Speichermenge für den Heap des großen Objekts und den kleinen Objekt heap verfügbar ist, und steuert, ob der Garbage Collector eine vollständige Blockierung der Garbage Collection durchführt, wenn nicht genügend Arbeitsspeicher anfänglich verfügbar ist.

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

Die Speichermenge in Byte, die zugewiesen werden soll, ohne eine Garbage Collection auszulösen. totalSize - lohSize muss kleiner oder gleich der Größe eines kurzlebigen Segments sein. Informationen zur Größe eines kurzlebigen Abschnitts finden Sie im Abschnitt "Ephemerale Generationen und Segmente" im Artikel "Grundlagen der Garbage Collection ".

lohSize
Int64

Die Anzahl der Bytes totalSize , die für LOH-Zuordnungen (Large Object Heap) verwendet werden sollen.

disallowFullBlockingGC
Boolean

trueeine vollständige Blockierung der Garbage Collection auszulassen, wenn der Garbage Collector anfänglich nicht in der Lage ist, den angegebenen Speicher für den kleinen Objekt heap (SOH) und LOH zuzuweisen; andernfalls . false

Gibt zurück

truewenn die Laufzeit die erforderliche Arbeitsspeichermenge übernehmen konnte und der Garbage Collector keinen GC-Regionslatenzmodus eingeben kann; andernfalls . false

Attribute

Ausnahmen

totalSize - lohSize überschreitet die kurzlebige Segmentgröße.

Der Prozess befindet sich bereits im GC-Bereichslatenzmodus.

Hinweise

Die TryStartNoGCRegion(Int64, Int64, Boolean) Methode versucht, den Garbage Collector ohne GC-Regionslatenzmodus zu platzieren, wodurch die Garbage Collection nicht zulässig ist, während eine App einen kritischen Codebereich ausführt. Wenn die Laufzeit zunächst nicht die angeforderte Speichermenge zuordnen kann und das disallowFullBlockingGC Argument lautet false, führt der Garbage Collector eine vollständige Blockierung der Garbage Collection durch, um zusätzlichen Arbeitsspeicher freizugeben. Andernfalls schlägt die Zuordnung fehl, und die Methode gibt zurück false. Der Garbage Collector gibt keinen GC-Bereichslatenzmodus ein, wenn er für den LOH und lohSizetotalSize - für den Kleinen Objekt heap (SOH) zuordnen lohSize kann.

lohSize muss groß genug sein, um alle Speicherzuweisungen zu verarbeiten, die im kritischen Pfad für den LOH auftreten, und totalSize - lohSize muss groß genug sein, um alle Speicherzuweisungen zu behandeln, die im kritischen Pfad für die SOH auftreten. Dazu gehören Zuweisungen durch die App sowie Zuteilungen, die von der Laufzeit im Auftrag der App vorgenommen werden.

Einstellung disallowFullBlockingGC , um eine vollständige Blockierung der Garbage Collection zu true verhindern, wenn nicht genügend Arbeitsspeicher anfänglich verfügbar ist, ist für Lastenausgleichsszenarien am nützlichsten: Ein System kann diese Methode aufrufen und sich selbst als bereit für die Annahme von Anforderungen melden, wenn sie zurückgegeben truewird, und über die Umleitungsanforderungen des Lastenausgleichs an andere Systeme verfügen, wenn sie zurückgegeben wird false. Sie kann dann eine vollständige Blockierung der Garbage Collection durchführen, wenn sie keine Anforderungen durch Aufrufen der Collect(Int32, GCCollectionMode, Boolean, Boolean) Methode verarbeitet.

Important

Sie können Aufrufe der TryStartNoGCRegion-Methode nicht verschachteln und sollten die EndNoGCRegion-Methode nur aufrufen, wenn sich die Laufzeit aktuell im Latenzmodus der no GC Region befindet. Mit anderen Worten, Sie sollten nicht mehrmals aufrufen TryStartNoGCRegion (nach dem ersten Methodenaufruf werden nachfolgende Aufrufe nicht erfolgreich ausgeführt), und Sie sollten nicht erwarten, dass Aufrufe EndNoGCRegion erfolgreich ausgeführt werden, nur weil der erste Aufruf erfolgreich war TryStartNoGCRegion .

Sie beenden den Latenzmodus für keine GC-Regionen, indem Sie die EndNoGCRegion Methode aufrufen.

Weitere Informationen

Gilt für:

TryStartNoGCRegion(Int64, Int64)

Quelle:
GC.CoreCLR.cs
Quelle:
GC.CoreCLR.cs
Quelle:
GC.CoreCLR.cs
Quelle:
GC.CoreCLR.cs
Quelle:
GC.CoreCLR.cs

Versucht, die Garbage Collection während der Ausführung eines kritischen Pfads zu verbieten, wenn eine angegebene Speichermenge für den Heap des großen Objekts und den Heap für kleine Objekte verfügbar ist.

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

Die Speichermenge in Byte, die zugewiesen werden soll, ohne eine Garbage Collection auszulösen. totalSize - lohSize muss kleiner oder gleich der Größe eines kurzlebigen Segments sein. Informationen zur Größe eines kurzlebigen Abschnitts finden Sie im Abschnitt "Ephemerale Generationen und Segmente" im Artikel "Grundlagen der Garbage Collection ".

lohSize
Int64

Die Anzahl der Bytes totalSize , die für LOH-Zuordnungen (Large Object Heap) verwendet werden sollen.

Gibt zurück

truewenn die Laufzeit die erforderliche Arbeitsspeichermenge übernehmen konnte und der Garbage Collector keinen GC-Regionslatenzmodus eingeben kann; andernfalls . false

Attribute

Ausnahmen

totalSize - lohSize überschreitet die kurzlebige Segmentgröße.

Der Prozess befindet sich bereits im GC-Bereichslatenzmodus.

Hinweise

Die TryStartNoGCRegion(Int64, Int64) Methode versucht, den Garbage Collector ohne GC-Regionslatenzmodus zu platzieren, wodurch die Garbage Collection nicht zulässig ist, während eine App einen kritischen Codebereich ausführt. Wenn die Laufzeit die angeforderte Speichermenge anfangs nicht zuordnen kann, führt der Garbage Collector eine vollständige Blockierung der Garbage Collection durch, um zusätzlichen Arbeitsspeicher freizugeben. Der Garbage Collector gibt keinen GC-Bereichslatenzmodus ein, wenn er für den LOH und lohSizetotalSize - für den Kleinen Objekt heap (SOH) zuordnen lohSize kann.

lohSize muss groß genug sein, um alle Speicherzuweisungen zu verarbeiten, die im kritischen Pfad für den LOH auftreten, und totalSize - lohSize muss groß genug sein, um alle Speicherzuweisungen zu behandeln, die im kritischen Pfad für die SOH auftreten. Dazu gehören Zuweisungen durch die App sowie Zuteilungen, die von der Laufzeit im Auftrag der App vorgenommen werden.

Important

Sie können Aufrufe der TryStartNoGCRegion-Methode nicht verschachteln und sollten die EndNoGCRegion-Methode nur aufrufen, wenn sich die Laufzeit aktuell im Latenzmodus der no GC Region befindet. Mit anderen Worten, Sie sollten nicht mehrmals aufrufen TryStartNoGCRegion (nach dem ersten Methodenaufruf werden nachfolgende Aufrufe nicht erfolgreich ausgeführt), und Sie sollten nicht erwarten, dass Aufrufe EndNoGCRegion erfolgreich ausgeführt werden, nur weil der erste Aufruf erfolgreich war TryStartNoGCRegion .

Sie beenden den Latenzmodus für keine GC-Regionen, indem Sie die EndNoGCRegion Methode aufrufen.

Weitere Informationen

Gilt für:

TryStartNoGCRegion(Int64, Boolean)

Quelle:
GC.CoreCLR.cs
Quelle:
GC.CoreCLR.cs
Quelle:
GC.CoreCLR.cs
Quelle:
GC.CoreCLR.cs
Quelle:
GC.CoreCLR.cs

Versucht, die Garbage Collection während der Ausführung eines kritischen Pfads zu verbieten, wenn eine angegebene Speichermenge verfügbar ist, und steuert, ob der Garbage Collector eine vollständige Blockierung der Garbage Collection durchführt, wenn nicht genügend Arbeitsspeicher anfänglich verfügbar ist.

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

Die Speichermenge in Byte, die zugewiesen werden soll, ohne eine Garbage Collection auszulösen. Er muss kleiner oder gleich der Größe eines kurzlebigen Segments sein. Informationen zur Größe eines kurzlebigen Abschnitts finden Sie im Abschnitt "Ephemerale Generationen und Segmente" im Artikel "Grundlagen der Garbage Collection ".

disallowFullBlockingGC
Boolean

trueum eine vollständige blockierungsbehinderte Garbage Collection auszulassen, wenn der Garbage Collector anfangs nicht in der Lage ist, totalSizeBytes zuzuordnenfalse; andernfalls .

Gibt zurück

truewenn die Laufzeit die erforderliche Arbeitsspeichermenge übernehmen konnte und der Garbage Collector keinen GC-Regionslatenzmodus eingeben kann; andernfalls . false

Attribute

Ausnahmen

totalSize überschreitet die kurzlebige Segmentgröße.

Der Prozess befindet sich bereits im GC-Bereichslatenzmodus.

Hinweise

Die TryStartNoGCRegion(Int64, Boolean) Methode versucht, den Garbage Collector ohne GC-Regionslatenzmodus zu platzieren, wodurch die Garbage Collection nicht zulässig ist, während eine App einen kritischen Codebereich ausführt. Wenn die Laufzeit zunächst nicht die angeforderte Speichermenge zuordnen kann und das disallowFullBlockingGC Argument lautet false, führt der Garbage Collector eine vollständige Blockierung der Garbage Collection durch, um zusätzlichen Arbeitsspeicher freizugeben. Andernfalls schlägt die Zuordnung fehl, und die Methode gibt zurück false. Der Garbage Collector gibt keinen GC-Regionslatenzmodus ein, wenn er die erforderliche Speichermenge zuordnen kann, was in diesem Fall tatsächlich 2 * ist totalSize (es versucht, den Heap des kleinen Objekts und totalSize für den Heap des großen Objekts zuzuweisentotalSize).

totalSize muss groß genug sein, um alle Speicherzuweisungen zu behandeln, die im kritischen Pfad auftreten. Dazu gehören Zuweisungen durch die App sowie Zuteilungen, die von der Laufzeit im Auftrag der App vorgenommen werden.

Einstellung disallowFullBlockingGC , um eine vollständige Blockierung der Garbage Collection zu true verhindern, wenn nicht genügend Arbeitsspeicher anfänglich verfügbar ist, ist für Lastenausgleichsszenarien am nützlichsten: Ein System kann diese Methode aufrufen und sich selbst als bereit für die Annahme von Anforderungen melden, wenn sie zurückgegeben truewird, und über die Umleitungsanforderungen des Lastenausgleichs an andere Systeme verfügen, wenn sie zurückgegeben wird false. Sie kann dann eine vollständige Blockierung der Garbage Collection durchführen, wenn sie keine Anforderungen durch Aufrufen der Collect(Int32, GCCollectionMode, Boolean, Boolean) Methode verarbeitet.

Important

Sie können Aufrufe der TryStartNoGCRegion-Methode nicht verschachteln und sollten die EndNoGCRegion-Methode nur aufrufen, wenn sich die Laufzeit aktuell im Latenzmodus der no GC Region befindet. Mit anderen Worten, Sie sollten nicht mehrmals aufrufen TryStartNoGCRegion (nach dem ersten Methodenaufruf werden nachfolgende Aufrufe nicht erfolgreich ausgeführt), und Sie sollten nicht erwarten, dass Aufrufe EndNoGCRegion erfolgreich ausgeführt werden, nur weil der erste Aufruf erfolgreich war TryStartNoGCRegion .

Sie beenden den Latenzmodus für keine GC-Regionen, indem Sie die EndNoGCRegion Methode aufrufen.

Weitere Informationen

Gilt für:

TryStartNoGCRegion(Int64)

Quelle:
GC.CoreCLR.cs
Quelle:
GC.CoreCLR.cs
Quelle:
GC.CoreCLR.cs
Quelle:
GC.CoreCLR.cs
Quelle:
GC.CoreCLR.cs

Versucht, die Garbage Collection während der Ausführung eines kritischen Pfads zu verbieten, wenn eine angegebene Speichermenge verfügbar ist.

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

Die Speichermenge in Byte, die zugewiesen werden soll, ohne eine Garbage Collection auszulösen. Er muss kleiner oder gleich der Größe eines kurzlebigen Segments sein. Informationen zur Größe eines kurzlebigen Abschnitts finden Sie im Abschnitt "Ephemerale Generationen und Segmente" im Artikel "Grundlagen der Garbage Collection ".

Gibt zurück

truewenn die Laufzeit die erforderliche Arbeitsspeichermenge übernehmen konnte und der Garbage Collector keinen GC-Regionslatenzmodus eingeben kann; andernfalls . false

Attribute

Ausnahmen

totalSize überschreitet die kurzlebige Segmentgröße.

Der Prozess befindet sich bereits im GC-Bereichslatenzmodus.

Hinweise

Die TryStartNoGCRegion(Int64) Methode versucht, den Garbage Collector ohne GC-Regionslatenzmodus zu platzieren, wodurch die Garbage Collection nicht zulässig ist, während eine App einen kritischen Codebereich ausführt. Wenn die Laufzeit die angeforderte Speichermenge anfangs nicht zuordnen kann, führt der Garbage Collector eine vollständige Blockierung der Garbage Collection durch, um zusätzlichen Arbeitsspeicher freizugeben. Der Garbage Collector gibt keinen GC-Regionslatenzmodus ein, wenn er die erforderliche Speichermenge zuordnen kann, was in diesem Fall tatsächlich 2 * totalSize Bytes ist (es versucht, Bytes für den Heap des kleinen Objekts und totalSize Bytes für den Heap des großen Objekts zuzuweisentotalSize).

totalSize muss groß genug sein, um alle Speicherzuweisungen zu behandeln, die im kritischen Pfad auftreten. Dazu gehören Zuweisungen durch die App sowie Zuteilungen, die von der Laufzeit im Auftrag der App vorgenommen werden.

Important

Sie können Aufrufe der TryStartNoGCRegion-Methode nicht verschachteln und sollten die EndNoGCRegion-Methode nur aufrufen, wenn sich die Laufzeit aktuell im Latenzmodus der no GC Region befindet. Mit anderen Worten, Sie sollten nicht mehrmals aufrufen TryStartNoGCRegion (nach dem ersten Methodenaufruf werden nachfolgende Aufrufe nicht erfolgreich ausgeführt), und Sie sollten nicht erwarten, dass Aufrufe EndNoGCRegion erfolgreich ausgeführt werden, nur weil der erste Aufruf erfolgreich war TryStartNoGCRegion .

Sie beenden den Latenzmodus für keine GC-Regionen, indem Sie die EndNoGCRegion Methode aufrufen.

Weitere Informationen

Gilt für: