GC.TryStartNoGCRegion Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
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
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
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
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.