GC.RemoveMemoryPressure(Int64) 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.
Informe l’exécution que la mémoire non managée a été libérée et n’a plus besoin d’être prise en compte lors de la planification du garbage collection.
public:
static void RemoveMemoryPressure(long bytesAllocated);
[System.Security.SecurityCritical]
public static void RemoveMemoryPressure (long bytesAllocated);
public static void RemoveMemoryPressure (long bytesAllocated);
[<System.Security.SecurityCritical>]
static member RemoveMemoryPressure : int64 -> unit
static member RemoveMemoryPressure : int64 -> unit
Public Shared Sub RemoveMemoryPressure (bytesAllocated As Long)
Paramètres
- bytesAllocated
- Int64
Quantité de mémoire non managée qui a été libérée.
- Attributs
Exceptions
bytesAllocated
est inférieur ou égal à 0.
- ou -
Sur un ordinateur 32 bits, bytesAllocated
est supérieur à Int32.MaxValue.
Remarques
Pour déterminer quand planifier le garbage collection, le runtime prend en compte la quantité de mémoire managée allouée. Si un petit objet managé alloue une grande quantité de mémoire non managée, le runtime prend uniquement en compte la mémoire managée et sous-estime donc l’urgence de la planification du garbage collection. La AddMemoryPressure méthode informe le runtime de cette pression supplémentaire sur la mémoire système, et la RemoveMemoryPressure méthode informe le runtime que la pression supplémentaire a été relâchée.
Les AddMemoryPressure méthodes et RemoveMemoryPressure améliorent les performances uniquement pour les types qui dépendent exclusivement des finaliseurs pour libérer les ressources non managées. Il n’est pas nécessaire d’utiliser ces méthodes dans les types qui suivent le modèle de suppression, où les finaliseurs sont utilisés pour propre des ressources non managées uniquement dans le cas où un consommateur du type oublie d’appeler Dispose
. Pour plus d’informations sur la finalisation des objets et le modèle de suppression, consultez Nettoyage des ressources non managées.
Dans le modèle d’utilisation le plus simple, un objet managé alloue de la mémoire non managée dans le constructeur et la libère dans la Finalize
méthode . Appelez la AddMemoryPressure méthode après avoir alloué la mémoire non managée, puis appelez la méthode après l’avoir RemoveMemoryPressure relâchée.
Dans les scénarios plus complexes, où l’allocation de mémoire non managée change considérablement pendant la durée de vie de l’objet managé, vous pouvez appeler les AddMemoryPressure méthodes et RemoveMemoryPressure pour communiquer ces modifications incrémentielles au runtime.
Attention
Vous devez vous assurer que vous supprimez exactement la quantité de pression que vous ajoutez. Le fait de ne pas le faire peut nuire aux performances du système dans les applications qui s’exécutent pendant de longues périodes.