GC.TryStartNoGCRegion Metod

Definition

Försöker att inte tillåta skräpinsamling under körningen av en kritisk sökväg.

Överlagringar

Name Description
TryStartNoGCRegion(Int64, Int64, Boolean)

Försöker att inte tillåta skräpinsamling under körningen av en kritisk sökväg om en angiven mängd minne är tillgängligt för den stora objekthögen och den lilla objekthögen, och styr om skräpinsamlaren utför en fullständig blockering av skräpinsamling om det inte finns tillräckligt med minne från början.

TryStartNoGCRegion(Int64, Int64)

Försöker att inte tillåta skräpinsamling under körningen av en kritisk sökväg om en angiven mängd minne är tillgängligt för den stora objekthögen och den lilla objekthögen.

TryStartNoGCRegion(Int64, Boolean)

Försöker att inte tillåta skräpinsamling under körningen av en kritisk sökväg om en angiven mängd minne är tillgängligt och styr om skräpinsamlaren gör en fullständig blockering av skräpinsamling om det inte finns tillräckligt med minne från början.

TryStartNoGCRegion(Int64)

Försöker att inte tillåta skräpinsamling under körningen av en kritisk sökväg om en angiven mängd minne är tillgängligt.

Kommentarer

Important

Du kan inte kapsla anrop till TryStartNoGCRegion metoden och du bör bara anropa EndNoGCRegion metoden om körningen för närvarande inte är i svarstidsläge för GC-regionen. Med andra ord bör du inte anropa TryStartNoGCRegion flera gånger (efter det första metodanropet kommer efterföljande anrop inte att lyckas) och du bör inte förvänta dig att EndNoGCRegion anropen ska lyckas bara för att TryStartNoGCRegion det första anropet lyckades.

TryStartNoGCRegion(Int64, Int64, Boolean)

Källa:
GC.CoreCLR.cs
Källa:
GC.CoreCLR.cs
Källa:
GC.CoreCLR.cs
Källa:
GC.CoreCLR.cs
Källa:
GC.CoreCLR.cs

Försöker att inte tillåta skräpinsamling under körningen av en kritisk sökväg om en angiven mängd minne är tillgängligt för den stora objekthögen och den lilla objekthögen, och styr om skräpinsamlaren utför en fullständig blockering av skräpinsamling om det inte finns tillräckligt med minne från början.

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

Parametrar

totalSize
Int64

Mängden minne i byte som ska allokeras utan att utlösa en skräpinsamling. totalSize - lohSize måste vara mindre än eller lika med storleken på ett tillfälliga segment. Information om storleken på ett tillfälliga segment finns i avsnittet "Tillfälliga generationer och segment" i artikeln Grunderna för skräpinsamling .

lohSize
Int64

Antalet byte som totalSize ska användas för loh-allokeringar (large object heap).

disallowFullBlockingGC
Boolean

trueatt utelämna en fullständig blockerande skräpinsamling om skräpinsamlaren inledningsvis inte kan allokera det angivna minnet på den lilla objekthögen (SOH) och LOH; annars . false

Returer

trueom körningen kunde checka in den mängd minne som krävs och skräpinsamlaren inte kan ange något svarstidsläge för GC-regionen. annars . false

Attribut

Undantag

totalSize - lohSize överskrider den tillfälliga segmentstorleken.

Processen är redan i inget svarstidsläge för GC-regionen.

Kommentarer

Metoden TryStartNoGCRegion(Int64, Int64, Boolean) försöker placera skräpinsamlaren i svarstidsläge för GC-region, vilket inte tillåter skräpinsamling medan en app kör en kritisk kodregion. Om körningen inte kan allokera den begärda mängden minne från början och disallowFullBlockingGC argumentet är false, utför skräpinsamlaren en fullständig blockerande skräpinsamling i ett försök att frigöra ytterligare minne. Annars misslyckas allokeringen och metoden returnerar false. Skräpinsamlaren anger inget svarstidsläge för GC-regionen om den kan allokera lohSize för LOH och totalSize - lohSize för den lilla objekthögen (SOH).

lohSize måste vara tillräckligt stort för att hantera alla minnesallokeringar som inträffar i den kritiska sökvägen för LOH och totalSize - lohSize måste vara tillräckligt stora för att hantera alla minnesallokeringar som inträffar i den kritiska sökvägen för SOH. Detta inkluderar allokeringar av appen samt allokeringar som körningen gör för appens räkning.

Inställningen disallowFullBlockingGC för att true förhindra en fullständig blockering av skräpinsamling om det inte finns tillräckligt med minne från början är mest användbart i belastningsutjämningsscenarier: ett system kan anropa den här metoden och rapportera sig själv som redo att acceptera begäranden om den returnerar trueoch ha omdirigeringsbegäranden för lastbalanseraren till andra system om den returnerar false. Den kan sedan utföra en fullständig blockerande skräpinsamling när den inte hanterar begäranden genom att anropa Collect(Int32, GCCollectionMode, Boolean, Boolean) metoden.

Important

Du kan inte kapsla anrop till TryStartNoGCRegion metoden och du bör bara anropa EndNoGCRegion metoden om körningen för närvarande inte är i svarstidsläge för GC-regionen. Med andra ord bör du inte anropa TryStartNoGCRegion flera gånger (efter det första metodanropet kommer efterföljande anrop inte att lyckas) och du bör inte förvänta dig att EndNoGCRegion anropen ska lyckas bara för att TryStartNoGCRegion det första anropet lyckades.

Du avslutar svarstidsläget för ingen GC-region genom att anropa EndNoGCRegion metoden.

Se även

Gäller för

TryStartNoGCRegion(Int64, Int64)

Källa:
GC.CoreCLR.cs
Källa:
GC.CoreCLR.cs
Källa:
GC.CoreCLR.cs
Källa:
GC.CoreCLR.cs
Källa:
GC.CoreCLR.cs

Försöker att inte tillåta skräpinsamling under körningen av en kritisk sökväg om en angiven mängd minne är tillgängligt för den stora objekthögen och den lilla objekthögen.

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

Parametrar

totalSize
Int64

Mängden minne i byte som ska allokeras utan att utlösa en skräpinsamling. totalSize - lohSize måste vara mindre än eller lika med storleken på ett tillfälliga segment. Information om storleken på ett tillfälliga segment finns i avsnittet "Tillfälliga generationer och segment" i artikeln Grunderna för skräpinsamling .

lohSize
Int64

Antalet byte som totalSize ska användas för loh-allokeringar (large object heap).

Returer

trueom körningen kunde checka in den mängd minne som krävs och skräpinsamlaren inte kan ange något svarstidsläge för GC-regionen. annars . false

Attribut

Undantag

totalSize - lohSize överskrider den tillfälliga segmentstorleken.

Processen är redan i inget svarstidsläge för GC-regionen.

Kommentarer

Metoden TryStartNoGCRegion(Int64, Int64) försöker placera skräpinsamlaren i svarstidsläge för GC-region, vilket inte tillåter skräpinsamling medan en app kör en kritisk kodregion. Om körningen inte kan allokera den begärda mängden minne från början utför skräpinsamlaren en fullständig blockerande skräpinsamling i ett försök att frigöra ytterligare minne. Skräpinsamlaren anger inget svarstidsläge för GC-regionen om den kan allokera lohSize för LOH och totalSize - lohSize för den lilla objekthögen (SOH).

lohSize måste vara tillräckligt stort för att hantera alla minnesallokeringar som inträffar i den kritiska sökvägen för LOH och totalSize - lohSize måste vara tillräckligt stora för att hantera alla minnesallokeringar som inträffar i den kritiska sökvägen för SOH. Detta inkluderar allokeringar av appen samt allokeringar som körningen gör för appens räkning.

Important

Du kan inte kapsla anrop till TryStartNoGCRegion metoden och du bör bara anropa EndNoGCRegion metoden om körningen för närvarande inte är i svarstidsläge för GC-regionen. Med andra ord bör du inte anropa TryStartNoGCRegion flera gånger (efter det första metodanropet kommer efterföljande anrop inte att lyckas) och du bör inte förvänta dig att EndNoGCRegion anropen ska lyckas bara för att TryStartNoGCRegion det första anropet lyckades.

Du avslutar svarstidsläget för ingen GC-region genom att anropa EndNoGCRegion metoden.

Se även

Gäller för

TryStartNoGCRegion(Int64, Boolean)

Källa:
GC.CoreCLR.cs
Källa:
GC.CoreCLR.cs
Källa:
GC.CoreCLR.cs
Källa:
GC.CoreCLR.cs
Källa:
GC.CoreCLR.cs

Försöker att inte tillåta skräpinsamling under körningen av en kritisk sökväg om en angiven mängd minne är tillgängligt och styr om skräpinsamlaren gör en fullständig blockering av skräpinsamling om det inte finns tillräckligt med minne från början.

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

Parametrar

totalSize
Int64

Mängden minne i byte som ska allokeras utan att utlösa en skräpinsamling. Den måste vara mindre än eller lika med storleken på ett tillfälliga segment. Information om storleken på ett tillfälliga segment finns i avsnittet "Tillfälliga generationer och segment" i artikeln Grunderna för skräpinsamling .

disallowFullBlockingGC
Boolean

true om du vill utelämna en fullständig blockerande skräpinsamling om skräpinsamlaren ursprungligen inte kan allokera totalSize byte, falseannars .

Returer

trueom körningen kunde checka in den mängd minne som krävs och skräpinsamlaren inte kan ange något svarstidsläge för GC-regionen. annars . false

Attribut

Undantag

totalSize överskrider den tillfälliga segmentstorleken.

Processen är redan i inget svarstidsläge för GC-regionen.

Kommentarer

Metoden TryStartNoGCRegion(Int64, Boolean) försöker placera skräpinsamlaren i svarstidsläge för GC-region, vilket inte tillåter skräpinsamling medan en app kör en kritisk kodregion. Om körningen inte kan allokera den begärda mängden minne från början och disallowFullBlockingGC argumentet är false, utför skräpinsamlaren en fullständig blockerande skräpinsamling i ett försök att frigöra ytterligare minne. Annars misslyckas allokeringen och metoden returnerar false. Skräpinsamlaren anger inget svarstidsläge för GC-regionen om den kan allokera den mängd minne som krävs, vilket i det här fallet faktiskt är 2 * totalSize (den försöker allokera totalSize för den lilla objekt-heapen och totalSize för den stora objekthögen).

totalSize måste vara tillräckligt stor för att hantera alla minnesallokeringar som inträffar i den kritiska sökvägen. Detta inkluderar allokeringar av appen samt allokeringar som körningen gör för appens räkning.

Inställningen disallowFullBlockingGC för att true förhindra en fullständig blockering av skräpinsamling om det inte finns tillräckligt med minne från början är mest användbart i belastningsutjämningsscenarier: ett system kan anropa den här metoden och rapportera sig själv som redo att acceptera begäranden om den returnerar trueoch ha omdirigeringsbegäranden för lastbalanseraren till andra system om den returnerar false. Den kan sedan utföra en fullständig blockerande skräpinsamling när den inte hanterar begäranden genom att anropa Collect(Int32, GCCollectionMode, Boolean, Boolean) metoden.

Important

Du kan inte kapsla anrop till TryStartNoGCRegion metoden och du bör bara anropa EndNoGCRegion metoden om körningen för närvarande inte är i svarstidsläge för GC-regionen. Med andra ord bör du inte anropa TryStartNoGCRegion flera gånger (efter det första metodanropet kommer efterföljande anrop inte att lyckas) och du bör inte förvänta dig att EndNoGCRegion anropen ska lyckas bara för att TryStartNoGCRegion det första anropet lyckades.

Du avslutar svarstidsläget för ingen GC-region genom att anropa EndNoGCRegion metoden.

Se även

Gäller för

TryStartNoGCRegion(Int64)

Källa:
GC.CoreCLR.cs
Källa:
GC.CoreCLR.cs
Källa:
GC.CoreCLR.cs
Källa:
GC.CoreCLR.cs
Källa:
GC.CoreCLR.cs

Försöker att inte tillåta skräpinsamling under körningen av en kritisk sökväg om en angiven mängd minne är tillgängligt.

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

Parametrar

totalSize
Int64

Mängden minne i byte som ska allokeras utan att utlösa en skräpinsamling. Den måste vara mindre än eller lika med storleken på ett tillfälliga segment. Information om storleken på ett tillfälliga segment finns i avsnittet "Tillfälliga generationer och segment" i artikeln Grunderna för skräpinsamling .

Returer

trueom körningen kunde checka in den mängd minne som krävs och skräpinsamlaren inte kan ange något svarstidsläge för GC-regionen. annars . false

Attribut

Undantag

totalSize överskrider den tillfälliga segmentstorleken.

Processen är redan i inget svarstidsläge för GC-regionen.

Kommentarer

Metoden TryStartNoGCRegion(Int64) försöker placera skräpinsamlaren i svarstidsläge för GC-region, vilket inte tillåter skräpinsamling medan en app kör en kritisk kodregion. Om körningen inte kan allokera den begärda mängden minne från början utför skräpinsamlaren en fullständig blockerande skräpinsamling i ett försök att frigöra ytterligare minne. Skräpinsamlaren anger inget svarstidsläge för GC-regionen om den kan allokera den mängd minne som krävs, vilket i det här fallet faktiskt är 2 * totalSize byte (den försöker allokera totalSize byte för den lilla objekt-heapen och totalSize byte för den stora objekt-heapen).

totalSize måste vara tillräckligt stor för att hantera alla minnesallokeringar som inträffar i den kritiska sökvägen. Detta inkluderar allokeringar av appen samt allokeringar som körningen gör för appens räkning.

Important

Du kan inte kapsla anrop till TryStartNoGCRegion metoden och du bör bara anropa EndNoGCRegion metoden om körningen för närvarande inte är i svarstidsläge för GC-regionen. Med andra ord bör du inte anropa TryStartNoGCRegion flera gånger (efter det första metodanropet kommer efterföljande anrop inte att lyckas) och du bör inte förvänta dig att EndNoGCRegion anropen ska lyckas bara för att TryStartNoGCRegion det första anropet lyckades.

Du avslutar svarstidsläget för ingen GC-region genom att anropa EndNoGCRegion metoden.

Se även

Gäller för