GC.RefreshMemoryLimit Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Indica al recolector de elementos no utilizados que vuelva a configurarse mediante la detección de los distintos límites de memoria en el sistema.
public:
static void RefreshMemoryLimit();
public static void RefreshMemoryLimit ();
static member RefreshMemoryLimit : unit -> unit
Public Shared Sub RefreshMemoryLimit ()
Excepciones
El límite máximo es demasiado bajo. Esto puede ocurrir si el límite máximo del montón que establecerá la actualización, ya sea debido a la nueva configuración de AppData o implícita por los cambios de límite de memoria del contenedor, es menor que lo que ya se ha confirmado.
O bien
El límite máximo no es válido. Esto puede ocurrir, por ejemplo, con porcentajes de límite máximo de montón negativos.
Comentarios
Además del límite real de memoria física y la configuración de límite de contenedor, estas opciones de configuración se pueden sobrescribir:
- GCHeapHardLimit
- GCHeapHardLimitPercent
- GCHeapHardLimitSOH
- GCHeapHardLimitLOH
- GCHeapHardLimitPOH
- GCHeapHardLimitSOHPercent
- GCHeapHardLimitLOHPercent
- GCHeapHardLimitPOHPercent
En lugar de actualizar la variable de entorno (que no se leerá), estas invalidan esta configuración mediante un valor de ulong en AppContext.
Por ejemplo, puede usar AppContext.SetData("GCHeapHardLimit", (ulong) 100 * 1024 * 1024)
para invalidar GCHeapHardLimit a 100M.
Esta API solo controla las configuraciones que se pueden controlar cuando se carga el entorno de ejecución. En el caso de las configuraciones que no tienen ningún efecto en sistemas de 32 bits (como los de GCHeapHardLimit*), esta API no la controlará.