GC.RefreshMemoryLimit Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Instrui o Coletor de Lixo a se reconfigurar detectando os vários limites de memória no sistema.
public:
static void RefreshMemoryLimit();
public static void RefreshMemoryLimit ();
static member RefreshMemoryLimit : unit -> unit
Public Shared Sub RefreshMemoryLimit ()
Exceções
O limite é muito baixo. Isso pode acontecer se o limite rígido de heap que a atualização definirá, devido às novas configurações do AppData ou implícitas pelas alterações de limite de memória do contêiner, for menor do que o que já está confirmado.
-ou-
O limite rígido é inválido. Isso pode acontecer, por exemplo, com percentuais de limite rígido de heap negativos.
Comentários
Além do limite de memória física real e das configurações de limite de contêiner, essas configurações podem ser substituídas:
- GCHeapHardLimit
- GCHeapHardLimitPercent
- GCHeapHardLimitSOH
- GCHeapHardLimitLOH
- GCHeapHardLimitPOH
- GCHeapHardLimitSOHPercent
- GCHeapHardLimitLOHPercent
- GCHeapHardLimitPOHPercent
Em vez de atualizar a variável de ambiente (que não será lida), elas substituem essas configurações usando um valor ulong no AppContext.
Por exemplo, você pode usar AppContext.SetData("GCHeapHardLimit", (ulong) 100 * 1024 * 1024)
para substituir o GCHeapHardLimit para 100M.
Essa API só manipula configurações que podem ser manipuladas quando o runtime é carregado. Para configurações que não têm efeitos em sistemas de 32 bits (como os GCHeapHardLimit*), essa API não lidará com isso.