GC.TryStartNoGCRegion Méthode

Définition

Tente d’interdire le garbage collection pendant l’exécution d’un chemin d’accès critique.

Surcharges

TryStartNoGCRegion(Int64, Int64, Boolean)

Tente de suspendre le garbage collection pendant l'exécution d'un chemin d'accès critique si une quantité de mémoire suffisante spécifiée est disponible pour le tas d'objets volumineux et le tas de petits objets, et contrôle si le garbage collector effectue un garbage collection de blocage complet si la mémoire initialement disponible est insuffisante.

TryStartNoGCRegion(Int64, Int64)

Tente d'interdire le garbage collection pendant l'exécution d'un chemin d'accès critique si une quantité de mémoire spécifiée est disponible pour le tas d'objets volumineux et le tas de petits objets.

TryStartNoGCRegion(Int64, Boolean)

Tente d'interdire le garbage collection pendant l'exécution d'un chemin d'accès critique si une quantité de mémoire spécifiée est disponible, et contrôle si le garbage collector effectue un garbage collection de blocage complet si la mémoire initialement disponible est insuffisante.

TryStartNoGCRegion(Int64)

Tente d'interdire le garbage collection pendant l'exécution d'un chemin d'accès critique si une quantité de mémoire spécifiée est disponible.

Remarques

Important

Vous ne pouvez pas imbriquer les appels à la TryStartNoGCRegion méthode, et vous devez uniquement appeler la EndNoGCRegion méthode si le runtime n’est actuellement pas en mode de latence de région GC. En d’autres termes, vous ne devez pas appeler TryStartNoGCRegion plusieurs fois (après le premier appel de méthode, les appels suivants ne réussissent pas), et vous ne devez pas vous attendre à EndNoGCRegion ce que les appels réussissent uniquement parce que le premier appel a TryStartNoGCRegion réussi.

TryStartNoGCRegion(Int64, Int64, Boolean)

Tente de suspendre le garbage collection pendant l'exécution d'un chemin d'accès critique si une quantité de mémoire suffisante spécifiée est disponible pour le tas d'objets volumineux et le tas de petits objets, et contrôle si le garbage collector effectue un garbage collection de blocage complet si la mémoire initialement disponible est insuffisante.

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

Paramètres

totalSize
Int64

Quantité de mémoire en octets à allouer sans déclencher un garbage collection. totalSize -lohSize doit être inférieure ou égale à la taille d’un segment éphémère. Pour plus d’informations sur la taille d’un segment éphémère, consultez la section « Segments et générations éphémères » dans l’article Notions de base du garbage collection.

lohSize
Int64

Nombre d'octets dans totalSize à utiliser pour les allocations de tas d'objets volumineux (LOH).

disallowFullBlockingGC
Boolean

true pour omettre un garbage collection de blocage complet si le garbage collector ne parvient pas initialement à allouer la mémoire spécifiée sur le tas de petits objets (SOH) et le tas d'objets volumineux (LOH) ; sinon, false.

Retours

Boolean

true si le runtime a pu valider la quantité de mémoire requise et que le garbage collector peut entrer en mode de latence sans région GC ; sinon, false.

Attributs

Exceptions

totalSize - lohSize dépasse la taille du segment éphémère.

Le processus est déjà en mode de latence sans région GC.

Remarques

La TryStartNoGCRegion(Int64, Int64, Boolean) méthode tente de placer le garbage collector en mode de latence de région GC, ce qui interdit le garbage collection pendant qu’une application exécute une région critique de code. Si le runtime ne parvient pas à allouer initialement la quantité de mémoire demandée et que l’argument est , le disallowFullBlockingGC garbage collector effectue un garbage collection de blocage complet dans une tentative de libérer de la mémoire supplémentaire ; sinon, l’allocation échoue et la méthode retourne false.false Le récupérateur de mémoire n’entre pas en mode de latence de région GC s’il est en mesure d’allouer lohSize pour le LOH et totalSize - lohSize pour le tas d’objets de petite taille (SOH).

lohSize doit être suffisamment grand pour gérer toutes les allocations de mémoire qui se produisent dans le chemin critique pour le LOH, et totalSize - lohSize doit être suffisamment grande pour gérer toutes les allocations de mémoire qui se produisent dans le chemin critique pour le SOH. Cela inclut les allocations par l’application, ainsi que les allocations effectuées par le runtime au nom de l’application.

La définition disallowFullBlockingGC pour true empêcher un garbage collection de blocage complet si la mémoire insuffisante est initialement disponible est la plus utile dans les scénarios d’équilibrage de charge : un système peut appeler cette méthode et se signaler comme prêt à accepter les demandes si elle retourne true, et avoir les demandes de redirection de l’équilibreur de charge vers d’autres systèmes s’il retourne false. Il peut ensuite effectuer un garbage collection de blocage complet lorsqu’il ne gère pas les demandes en appelant la Collect(Int32, GCCollectionMode, Boolean, Boolean) méthode.

Important

Vous ne pouvez pas imbriquer les appels à la TryStartNoGCRegion méthode, et vous devez uniquement appeler la EndNoGCRegion méthode si le runtime n’est actuellement pas en mode de latence de région GC. En d’autres termes, vous ne devez pas appeler TryStartNoGCRegion plusieurs fois (après le premier appel de méthode, les appels suivants ne réussissent pas), et vous ne devez pas vous attendre à EndNoGCRegion ce que les appels réussissent uniquement parce que le premier appel a TryStartNoGCRegion réussi.

Vous quittez le mode de latence de la région GC en appelant la EndNoGCRegion méthode.

Voir aussi

S’applique à

TryStartNoGCRegion(Int64, Int64)

Tente d'interdire le garbage collection pendant l'exécution d'un chemin d'accès critique si une quantité de mémoire spécifiée est disponible pour le tas d'objets volumineux et le tas de petits objets.

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

Paramètres

totalSize
Int64

Quantité de mémoire en octets à allouer sans déclencher un garbage collection. totalSize -lohSize doit être inférieure ou égale à la taille d’un segment éphémère. Pour plus d’informations sur la taille d’un segment éphémère, consultez la section « Segments et générations éphémères » dans l’article Notions de base du garbage collection.

lohSize
Int64

Nombre d'octets dans totalSize à utiliser pour les allocations de tas d'objets volumineux (LOH).

Retours

Boolean

true si le runtime a pu valider la quantité de mémoire requise et que le garbage collector peut entrer en mode de latence sans région GC ; sinon, false.

Attributs

Exceptions

totalSize - lohSize dépasse la taille du segment éphémère.

Le processus est déjà en mode de latence sans région GC.

Remarques

La TryStartNoGCRegion(Int64, Int64) méthode tente de placer le garbage collector en mode de latence de région GC, ce qui interdit le garbage collection pendant qu’une application exécute une région critique de code. Si le runtime n’est pas en mesure d’allouer initialement la quantité de mémoire demandée, le garbage collector effectue un garbage collection de blocage complet dans une tentative de libérer de la mémoire supplémentaire. Le récupérateur de mémoire n’entre pas en mode de latence de région GC s’il est en mesure d’allouer lohSize pour le LOH et totalSize - lohSize pour le tas d’objets de petite taille (SOH).

lohSize doit être suffisamment grand pour gérer toutes les allocations de mémoire qui se produisent dans le chemin critique pour le LOH, et totalSize - lohSize doit être suffisamment grande pour gérer toutes les allocations de mémoire qui se produisent dans le chemin critique pour le SOH. Cela inclut les allocations par l’application, ainsi que les allocations effectuées par le runtime au nom de l’application.

Important

Vous ne pouvez pas imbriquer les appels à la TryStartNoGCRegion méthode, et vous devez uniquement appeler la EndNoGCRegion méthode si le runtime n’est actuellement pas en mode de latence de région GC. En d’autres termes, vous ne devez pas appeler TryStartNoGCRegion plusieurs fois (après le premier appel de méthode, les appels suivants ne réussissent pas), et vous ne devez pas vous attendre à EndNoGCRegion ce que les appels réussissent uniquement parce que le premier appel a TryStartNoGCRegion réussi.

Vous quittez le mode de latence de la région GC en appelant la EndNoGCRegion méthode.

Voir aussi

S’applique à

TryStartNoGCRegion(Int64, Boolean)

Tente d'interdire le garbage collection pendant l'exécution d'un chemin d'accès critique si une quantité de mémoire spécifiée est disponible, et contrôle si le garbage collector effectue un garbage collection de blocage complet si la mémoire initialement disponible est insuffisante.

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

Paramètres

totalSize
Int64

Quantité de mémoire en octets à allouer sans déclencher un garbage collection. Elle doit être inférieure ou égale à la taille d'un segment éphémère. Pour plus d’informations sur la taille d’un segment éphémère, consultez la section « Segments et générations éphémères » dans l’article Notions de base du garbage collection.

disallowFullBlockingGC
Boolean

true pour omettre un garbage collection de blocage complet si le garbage collector ne parvient pas initialement à allouer totalSize octets ; sinon, false.

Retours

Boolean

true si le runtime a pu valider la quantité de mémoire requise et que le garbage collector peut entrer en mode de latence sans région GC ; sinon, false.

Attributs

Exceptions

totalSize dépasse la taille du segment éphémère.

Le processus est déjà en mode de latence sans région GC.

Remarques

La TryStartNoGCRegion(Int64, Boolean) méthode tente de placer le garbage collector en mode de latence de région GC, ce qui interdit le garbage collection pendant qu’une application exécute une région critique de code. Si le runtime ne parvient pas à allouer initialement la quantité de mémoire demandée et que l’argument est , le disallowFullBlockingGC garbage collector effectue un garbage collection de blocage complet dans une tentative de libérer de la mémoire supplémentaire ; sinon, l’allocation échoue et la méthode retourne false.false Le garbage collector n’entre pas en mode de latence de région GC s’il est en mesure d’allouer la quantité de mémoire requise, ce qui, dans ce cas, est en fait 2 * totalSize (il tente d’allouer totalSize pour le tas de petits objets et totalSize pour le tas d’objets volumineux).

totalSize doit être suffisamment grand pour gérer toutes les allocations de mémoire qui se produisent dans le chemin critique. Cela inclut les allocations par l’application, ainsi que les allocations effectuées par le runtime au nom de l’application.

La définition disallowFullBlockingGC pour true empêcher un garbage collection de blocage complet si la mémoire insuffisante est initialement disponible est la plus utile dans les scénarios d’équilibrage de charge : un système peut appeler cette méthode et se signaler comme prêt à accepter les demandes si elle retourne true, et avoir les demandes de redirection de l’équilibreur de charge vers d’autres systèmes s’il retourne false. Il peut ensuite effectuer un garbage collection de blocage complet lorsqu’il ne gère pas les demandes en appelant la Collect(Int32, GCCollectionMode, Boolean, Boolean) méthode.

Important

Vous ne pouvez pas imbriquer les appels à la TryStartNoGCRegion méthode, et vous devez uniquement appeler la EndNoGCRegion méthode si le runtime n’est actuellement pas en mode de latence de région GC. En d’autres termes, vous ne devez pas appeler TryStartNoGCRegion plusieurs fois (après le premier appel de méthode, les appels suivants ne réussissent pas), et vous ne devez pas vous attendre à EndNoGCRegion ce que les appels réussissent uniquement parce que le premier appel a TryStartNoGCRegion réussi.

Vous quittez le mode de latence de la région GC en appelant la EndNoGCRegion méthode.

Voir aussi

S’applique à

TryStartNoGCRegion(Int64)

Tente d'interdire le garbage collection pendant l'exécution d'un chemin d'accès critique si une quantité de mémoire spécifiée est disponible.

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

Paramètres

totalSize
Int64

Quantité de mémoire en octets à allouer sans déclencher un garbage collection. Elle doit être inférieure ou égale à la taille d'un segment éphémère. Pour plus d’informations sur la taille d’un segment éphémère, consultez la section « Segments et générations éphémères » dans l’article Notions de base du garbage collection.

Retours

Boolean

true si le runtime a pu valider la quantité de mémoire requise et que le garbage collector peut entrer en mode de latence sans région GC ; sinon, false.

Attributs

Exceptions

totalSize dépasse la taille du segment éphémère.

Le processus est déjà en mode de latence sans région GC.

Remarques

La TryStartNoGCRegion(Int64) méthode tente de placer le garbage collector en mode de latence de région GC, ce qui interdit le garbage collection pendant qu’une application exécute une région critique de code. Si le runtime n’est pas en mesure d’allouer initialement la quantité de mémoire demandée, le garbage collector effectue un garbage collection de blocage complet dans une tentative de libérer de la mémoire supplémentaire. Le récupérateur de mémoire n’entre pas en mode de latence de région GC s’il est en mesure d’allouer la quantité de mémoire requise, ce qui, dans ce cas, est de 2 * totalSize octets (il tente d’allouer totalSize des octets pour le tas d’objets de petite taille et totalSize les octets pour le tas d’objets volumineux).

totalSize doit être suffisamment grand pour gérer toutes les allocations de mémoire qui se produisent dans le chemin critique. Cela inclut les allocations par l’application, ainsi que les allocations effectuées par le runtime au nom de l’application.

Important

Vous ne pouvez pas imbriquer les appels à la TryStartNoGCRegion méthode, et vous devez uniquement appeler la EndNoGCRegion méthode si le runtime n’est actuellement pas en mode de latence de région GC. En d’autres termes, vous ne devez pas appeler TryStartNoGCRegion plusieurs fois (après le premier appel de méthode, les appels suivants ne réussissent pas), et vous ne devez pas vous attendre à EndNoGCRegion ce que les appels réussissent uniquement parce que le premier appel a TryStartNoGCRegion réussi.

Vous quittez le mode de latence de la région GC en appelant la EndNoGCRegion méthode.

Voir aussi

S’applique à