GC.RefreshMemoryLimit Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Instrui o Coletor de Lixo a reconfigurar-se detetando 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 rígido é demasiado baixo. Isto pode acontecer se o limite rígido do heap que a atualização irá definir, seja devido a novas definições do AppData ou implícito pelas alterações ao limite de memória do contentor, for inferior ao que já está comprometido.
-ou-
O limite rígido é inválido. Isto pode acontecer, por exemplo, com percentagens negativas de limite rígido do heap.
Observações
Para além das definições físicas reais de limite de memória e limite de contentores, estas definições de configuração podem ser sobrescritas:
- GCHeapHardLimit
- GCHeapHardLimitPercent
- GCHeapHardLimitSOH
- GCHeapHardLimitLOH
- GCHeapHardLimitPOH
- GCHeapHardLimitSOHPercent
- GCHeapHardLimitLOHPercent
- GCHeapHardLimitPOHPercent
Em vez de atualizarem a variável de ambiente (que não será lida), estes sobrepõem estas definições usando um valor ulong no AppContext.
Por exemplo, podes usar AppContext.SetData("GCHeapHardLimit", (ulong) 100 * 1024 * 1024) para ultrapassar o GCHeapHardLimit para 100M.
Esta API só trata de configurações que podem ser tratadas quando o tempo de execução é carregado. Para configurações que não têm qualquer efeito em sistemas de 32 bits (como as GCHeapHardLimit*), esta API não o consegue.