GC.TryStartNoGCRegion Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Versucht, Garbage Collection während der Ausführung eines kritischen Pfads zu unterbinden.
Überlädt
TryStartNoGCRegion(Int64, Int64, Boolean) |
Versucht, Garbage Collection während der Ausführung eines kritischen Pfads zu unterbinden, wenn eine bestimmte Arbeitsspeichermenge für den großen und den kleinen Objektheap verfügbar ist, und steuert die Ausführung einer vollständigen blockierenden Garbage Collection durch den Garbage Collector, wenn nicht genügend Arbeitsspeicher verfügbar ist. |
TryStartNoGCRegion(Int64, Int64) |
Versucht, Garbage Collection während der Ausführung eines kritischen Pfads zu unterbinden, wenn eine bestimmte Arbeitsspeichermenge für den großen und den kleinen Objektheap verfügbar ist. |
TryStartNoGCRegion(Int64, Boolean) |
Versucht, Garbage Collection während der Ausführung eines kritischen Pfads zu unterbinden, wenn eine bestimmte Arbeitsspeichermenge verfügbar ist, und steuert die Ausführung einer vollständigen blockierenden Garbage Collection durch den Garbage Collector, wenn nicht genügend Arbeitsspeicher verfügbar ist. |
TryStartNoGCRegion(Int64) |
Versucht, Garbage Collection während der Ausführung eines kritischen Pfads zu unterbinden, wenn eine bestimmte Arbeitsspeichermenge verfügbar ist. |
Hinweise
Wichtig
Sie können keine Aufrufe der TryStartNoGCRegion Methode verschachteln, und Sie sollten die EndNoGCRegion Methode nur aufrufen, wenn sich die Laufzeit derzeit nicht im GC-Bereichslatenzmodus befindet. Mit anderen Worten, Sie sollten nicht mehrmals aufrufen TryStartNoGCRegion (nach dem ersten Methodenaufruf, nachfolgende Aufrufe werden nicht erfolgreich ausgeführt), und Sie sollten nicht erwarten, dass Aufrufe EndNoGCRegion erfolgreich sind, nur weil der erste Aufruf erfolgreich war TryStartNoGCRegion .
TryStartNoGCRegion(Int64, Int64, Boolean)
Versucht, Garbage Collection während der Ausführung eines kritischen Pfads zu unterbinden, wenn eine bestimmte Arbeitsspeichermenge für den großen und den kleinen Objektheap verfügbar ist, und steuert die Ausführung einer vollständigen blockierenden Garbage Collection durch den Garbage Collector, wenn nicht genügend Arbeitsspeicher 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 Arbeitsspeichermenge in Bytes, die ohne Auslösung einer Garbage Collection zugeordnet werden muss. totalSize
-lohSize
muss kleiner als oder gleich der Größe eines kurzlebigen Segments sein. Informationen zur Größe eines kurzlebigen Segments finden Sie im Abschnitt „Kurzlebige Generationen und Segmente“ im Artikel Grundlagen der Garbage Collection.
- lohSize
- Int64
Die Anzahl der Bytes in totalSize
, die für Zuordnung für großen Objektheap zu verwenden ist.
- disallowFullBlockingGC
- Boolean
true
, um eine vollständige blockierende Garbage Collection zu unterdrücken, wenn der Garbage Collector den für den kleinen und den großen Objektheap angegebenen Arbeitsspeicher nicht zuordnen kann, andernfalls false
.
Gibt zurück
true
, wenn die Laufzeit die erforderliche Arbeitsspeichermenge übergeben kann, und der Garbage Collector in den Latenzmodus ohne GC-Region wechseln kann; andernfalls false
.
- Attribute
Ausnahmen
totalSize
- lohSize
überschreitet die Größe des kurzlebigen Segments.
Der Prozess ist bereits im Latenzmodus ohne GC-Region.
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 den angeforderten Arbeitsspeicher nicht zuordnen kann und das disallowFullBlockingGC
Argument lautet false
, führt der Garbage Collector eine vollständige Blockierung der Garbage Collection aus, 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 den LOH und totalSize
- lohSize
den kleinen Objekt-Heap (SOH) zuordnen lohSize
kann.
lohSize
muss groß genug sein, um alle Speicherzuweisungen zu behandeln, 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 das SOH auftreten. Dazu gehören Zuweisungen der App sowie Zuteilungen, die die Laufzeit im Auftrag der App durchführt.
Einstellung disallowFullBlockingGC
, um true
eine vollständige Blockierung der Garbage Collection zu 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 er zurückgibt true
, und die Lastenausgleichs-Umleitungsanforderungen an andere Systeme haben, wenn sie zurückgegeben wird false
. Anschließend kann die Garbage Collection vollständig blockiert werden, wenn sie keine Anforderungen verarbeitet, indem Sie die Collect(Int32, GCCollectionMode, Boolean, Boolean) Methode aufrufen.
Wichtig
Sie können keine Aufrufe der TryStartNoGCRegion Methode verschachteln, und Sie sollten die EndNoGCRegion Methode nur aufrufen, wenn sich die Laufzeit derzeit nicht im GC-Bereichslatenzmodus befindet. Mit anderen Worten, Sie sollten nicht mehrmals aufrufen TryStartNoGCRegion (nach dem ersten Methodenaufruf, nachfolgende Aufrufe werden nicht erfolgreich ausgeführt), und Sie sollten nicht erwarten, dass Aufrufe EndNoGCRegion erfolgreich sind, nur weil der erste Aufruf erfolgreich war TryStartNoGCRegion .
Sie beenden den Latenzmodus für keine GC-Regionen, indem Sie die EndNoGCRegion Methode aufrufen.
Siehe auch
Gilt für
TryStartNoGCRegion(Int64, Int64)
Versucht, Garbage Collection während der Ausführung eines kritischen Pfads zu unterbinden, wenn eine bestimmte Arbeitsspeichermenge für den großen und den kleinen Objektheap 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 Arbeitsspeichermenge in Bytes, die ohne Auslösung einer Garbage Collection zugeordnet werden muss. totalSize
-lohSize
muss kleiner als oder gleich der Größe eines kurzlebigen Segments sein. Informationen zur Größe eines kurzlebigen Segments finden Sie im Abschnitt „Kurzlebige Generationen und Segmente“ im Artikel Grundlagen der Garbage Collection.
- lohSize
- Int64
Die Anzahl der Bytes in totalSize
, die für Zuordnung für großen Objektheap zu verwenden ist.
Gibt zurück
true
, wenn die Laufzeit die erforderliche Arbeitsspeichermenge übergeben kann, und der Garbage Collector in den Latenzmodus ohne GC-Region wechseln kann; andernfalls false
.
- Attribute
Ausnahmen
totalSize
- lohSize
überschreitet die Größe des kurzlebigen Segments.
Der Prozess ist bereits im Latenzmodus ohne GC-Region.
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 zunächst nicht die angeforderte Speichermenge 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 den LOH und totalSize
- lohSize
den kleinen Objekt-Heap (SOH) zuordnen lohSize
kann.
lohSize
muss groß genug sein, um alle Speicherzuweisungen zu behandeln, 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 das SOH auftreten. Dazu gehören Zuweisungen der App sowie Zuteilungen, die die Laufzeit im Auftrag der App durchführt.
Wichtig
Sie können keine Aufrufe der TryStartNoGCRegion Methode verschachteln, und Sie sollten die EndNoGCRegion Methode nur aufrufen, wenn sich die Laufzeit derzeit nicht im GC-Bereichslatenzmodus befindet. Mit anderen Worten, Sie sollten nicht mehrmals aufrufen TryStartNoGCRegion (nach dem ersten Methodenaufruf, nachfolgende Aufrufe werden nicht erfolgreich ausgeführt), und Sie sollten nicht erwarten, dass Aufrufe EndNoGCRegion erfolgreich sind, nur weil der erste Aufruf erfolgreich war TryStartNoGCRegion .
Sie beenden den Latenzmodus für keine GC-Regionen, indem Sie die EndNoGCRegion Methode aufrufen.
Siehe auch
Gilt für
TryStartNoGCRegion(Int64, Boolean)
Versucht, Garbage Collection während der Ausführung eines kritischen Pfads zu unterbinden, wenn eine bestimmte Arbeitsspeichermenge verfügbar ist, und steuert die Ausführung einer vollständigen blockierenden Garbage Collection durch den Garbage Collector, wenn nicht genügend Arbeitsspeicher 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 Arbeitsspeichermenge in Bytes, die ohne Auslösung einer Garbage Collection zugeordnet werden muss. Diese muss kleiner als oder gleich der Größe eines kurzlebigen Segments sein. Informationen zur Größe eines kurzlebigen Segments finden Sie im Abschnitt „Kurzlebige Generationen und Segmente“ im Artikel Grundlagen der Garbage Collection.
- disallowFullBlockingGC
- Boolean
true
, um eine vollständige blockierende Garbage Collection zu unterdrücken, wenn der Garbage Collector die totalSize
-Bytes nicht zuordnen kann, andernfalls false
.
Gibt zurück
true
, wenn die Laufzeit die erforderliche Arbeitsspeichermenge übergeben kann, und der Garbage Collector in den Latenzmodus ohne GC-Region wechseln kann; andernfalls false
.
- Attribute
Ausnahmen
totalSize
überschreitet die Größe des kurzlebigen Segments.
Der Prozess ist bereits im Latenzmodus ohne GC-Region.
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 den angeforderten Arbeitsspeicher nicht zuordnen kann und das disallowFullBlockingGC
Argument lautet false
, führt der Garbage Collector eine vollständige Blockierung der Garbage Collection aus, 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 die erforderliche Speichermenge zuordnen kann, was in diesem Fall tatsächlich 2 * totalSize
ist (es versucht, den kleinen Objekt-Heap und totalSize
den großen Objekt-Heap zuzuweisentotalSize
).
totalSize
muss groß genug sein, um alle Speicherzuweisungen zu behandeln, die im kritischen Pfad auftreten. Dazu gehören Zuweisungen der App sowie Zuteilungen, die die Laufzeit im Auftrag der App durchführt.
Einstellung disallowFullBlockingGC
, um true
eine vollständige Blockierung der Garbage Collection zu 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 er zurückgibt true
, und die Lastenausgleichs-Umleitungsanforderungen an andere Systeme haben, wenn sie zurückgegeben wird false
. Anschließend kann die Garbage Collection vollständig blockiert werden, wenn sie keine Anforderungen verarbeitet, indem Sie die Collect(Int32, GCCollectionMode, Boolean, Boolean) Methode aufrufen.
Wichtig
Sie können keine Aufrufe der TryStartNoGCRegion Methode verschachteln, und Sie sollten die EndNoGCRegion Methode nur aufrufen, wenn sich die Laufzeit derzeit nicht im GC-Bereichslatenzmodus befindet. Mit anderen Worten, Sie sollten nicht mehrmals aufrufen TryStartNoGCRegion (nach dem ersten Methodenaufruf, nachfolgende Aufrufe werden nicht erfolgreich ausgeführt), und Sie sollten nicht erwarten, dass Aufrufe EndNoGCRegion erfolgreich sind, nur weil der erste Aufruf erfolgreich war TryStartNoGCRegion .
Sie beenden den Latenzmodus für keine GC-Regionen, indem Sie die EndNoGCRegion Methode aufrufen.
Siehe auch
Gilt für
TryStartNoGCRegion(Int64)
Versucht, Garbage Collection während der Ausführung eines kritischen Pfads zu unterbinden, wenn eine bestimmte Arbeitsspeichermenge 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 Arbeitsspeichermenge in Bytes, die ohne Auslösung einer Garbage Collection zugeordnet werden muss. Diese muss kleiner als oder gleich der Größe eines kurzlebigen Segments sein. Informationen zur Größe eines kurzlebigen Segments finden Sie im Abschnitt „Kurzlebige Generationen und Segmente“ im Artikel Grundlagen der Garbage Collection.
Gibt zurück
true
, wenn die Laufzeit die erforderliche Arbeitsspeichermenge übergeben kann, und der Garbage Collector in den Latenzmodus ohne GC-Region wechseln kann; andernfalls false
.
- Attribute
Ausnahmen
totalSize
überschreitet die Größe des kurzlebigen Segments.
Der Prozess ist bereits im Latenzmodus ohne GC-Region.
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 zunächst nicht die angeforderte Speichermenge 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 die erforderliche Speichermenge zuordnen kann, was in diesem Fall tatsächlich 2 * totalSize
Bytes ist (es versucht, Bytes für den heap und totalSize
bytes des kleinen Objekts für den großen Objekt-Heap zuzuweisentotalSize
).
totalSize
muss groß genug sein, um alle Speicherzuweisungen zu behandeln, die im kritischen Pfad auftreten. Dazu gehören Zuweisungen der App sowie Zuteilungen, die die Laufzeit im Auftrag der App durchführt.
Wichtig
Sie können keine Aufrufe der TryStartNoGCRegion Methode verschachteln, und Sie sollten die EndNoGCRegion Methode nur aufrufen, wenn sich die Laufzeit derzeit nicht im GC-Bereichslatenzmodus befindet. Mit anderen Worten, Sie sollten nicht mehrmals aufrufen TryStartNoGCRegion (nach dem ersten Methodenaufruf, nachfolgende Aufrufe werden nicht erfolgreich ausgeführt), und Sie sollten nicht erwarten, dass Aufrufe EndNoGCRegion erfolgreich sind, nur weil der erste Aufruf erfolgreich war TryStartNoGCRegion .
Sie beenden den Latenzmodus für keine GC-Regionen, indem Sie die EndNoGCRegion Methode aufrufen.