GC.TryStartNoGCRegion 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.
Tentar desabilitar a coleta de lixo durante a execução de um caminho crítico.
Sobrecargas
TryStartNoGCRegion(Int64, Int64, Boolean) |
Tenta não permitir a coleta de lixo durante a execução de um caminho crítico se há uma quantidade especificada de memória disponível para o heap de objetos grandes e o heap de objetos pequenos e controla se o coletor de lixo faz uma coleta de lixo de bloqueio completo se nenhuma memória suficiente está inicialmente disponível. |
TryStartNoGCRegion(Int64, Int64) |
Tentar desabilitar a coleta de lixo durante a execução de um caminho crítico se uma quantidade especificada de memória estiver disponível para o heap de objeto grande e o heap de objeto pequeno. |
TryStartNoGCRegion(Int64, Boolean) |
Tenta não permitir a coleta de lixo durante a execução de um caminho crítico se houver uma quantidade especificada de memória disponível e controla se o coletor de lixo faz uma coleta de lixo de bloqueio completo se nenhuma memória suficiente estiver inicialmente disponível. |
TryStartNoGCRegion(Int64) |
Tentar desabilitar a coleta de lixo durante a execução de um caminho crítico se uma quantidade especificada de memória estiver disponível. |
Comentários
Importante
Você não pode aninhar chamadas para o TryStartNoGCRegion método e só deverá chamar o EndNoGCRegion método se o runtime estiver atualmente em nenhum modo de latência de região GC. Em outras palavras, você não deve chamar TryStartNoGCRegion várias vezes (após a primeira chamada de método, as chamadas subsequentes não serão bem-sucedidas) e você não deve esperar que as chamadas EndNoGCRegion tenham êxito apenas porque a primeira chamada foi TryStartNoGCRegion bem-sucedida.
TryStartNoGCRegion(Int64, Int64, Boolean)
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
Tenta não permitir a coleta de lixo durante a execução de um caminho crítico se há uma quantidade especificada de memória disponível para o heap de objetos grandes e o heap de objetos pequenos e controla se o coletor de lixo faz uma coleta de lixo de bloqueio completo se nenhuma memória suficiente está inicialmente disponível.
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
Parâmetros
- totalSize
- Int64
A quantidade de memória em bytes a se alocar sem disparar uma coleta de lixo.
totalSize
-
lohSize
precisa ser inferior ou igual ao tamanho de um segmento efêmero. Para obter informações sobre o tamanho de um segmento efêmero, consulte a seção "Gerações e segmentos efêmeros" no artigo Conceitos básicos sobre a coleta de lixo.
- lohSize
- Int64
O número de bytes em totalSize
a serem usados para alocações de LOH (heap de objetos grandes).
- disallowFullBlockingGC
- Boolean
true
para omitir uma coleta de lixo de bloqueio completo se o coletor de lixo inicialmente não puder alocar a memória especificada no SOH (heap de objetos pequenos) e no LOH; caso contrário, false
.
Retornos
true
se o runtime for capaz de confirmar a quantidade necessária de memória e o coletor de lixo for capaz de entrar no modo de latência não região GC; caso contrário, false
.
- Atributos
Exceções
totalSize
-
lohSize
excede o tamanho do segmento efêmero.
O processo já está em modo de latência não região GC.
Comentários
O TryStartNoGCRegion(Int64, Int64, Boolean) método tenta colocar o coletor de lixo no modo de latência de região GC, que não permite a coleta de lixo enquanto um aplicativo executa uma região crítica de código. Se o runtime não puder alocar inicialmente a quantidade de memória solicitada e o disallowFullBlockingGC
argumento for false
, o coletor de lixo executará uma coleta de lixo de bloqueio completo na tentativa de liberar memória adicional; caso contrário, a alocação falhará e o método retornará false
. O coletor de lixo não entrará no modo de latência da região do GC se for capaz de alocar lohSize
para o LOH e totalSize
- lohSize
para o SOH (heap de objetos pequenos).
lohSize
deve ser grande o suficiente para lidar com todas as alocações de memória que ocorrem no caminho crítico para o LOH e totalSize
- lohSize
deve ser grande o suficiente para lidar com todas as alocações de memória que ocorrem no caminho crítico para o SOH. Isso inclui alocações pelo aplicativo, bem como alocações que o runtime faz em nome do aplicativo.
A configuração disallowFullBlockingGC
para true
evitar uma coleta de lixo de bloqueio completo se não houver memória suficiente inicialmente disponível é mais útil em cenários de balanceamento de carga: um sistema pode chamar esse método e relatar-se como pronto para aceitar solicitações se retornar true
e fazer com que o balanceador de carga redirecione solicitações para outros sistemas se retornar false
. Em seguida, ele pode fazer uma coleta de lixo de bloqueio completo quando não está tratando solicitações chamando o Collect(Int32, GCCollectionMode, Boolean, Boolean) método .
Importante
Você não pode aninhar chamadas para o TryStartNoGCRegion método e só deverá chamar o EndNoGCRegion método se o runtime estiver atualmente em nenhum modo de latência de região GC. Em outras palavras, você não deve chamar TryStartNoGCRegion várias vezes (após a primeira chamada de método, as chamadas subsequentes não serão bem-sucedidas) e você não deve esperar que as chamadas EndNoGCRegion tenham êxito apenas porque a primeira chamada foi TryStartNoGCRegion bem-sucedida.
Você sai do modo de latência de região sem GC chamando o EndNoGCRegion método .
Confira também
Aplica-se a
TryStartNoGCRegion(Int64, Int64)
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
Tentar desabilitar a coleta de lixo durante a execução de um caminho crítico se uma quantidade especificada de memória estiver disponível para o heap de objeto grande e o heap de objeto pequeno.
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
Parâmetros
- totalSize
- Int64
A quantidade de memória em bytes a se alocar sem disparar uma coleta de lixo.
totalSize
-
lohSize
precisa ser inferior ou igual ao tamanho de um segmento efêmero. Para obter informações sobre o tamanho de um segmento efêmero, consulte a seção "Gerações e segmentos efêmeros" no artigo Conceitos básicos sobre a coleta de lixo.
- lohSize
- Int64
O número de bytes em totalSize
a serem usados para alocações de LOH (heap de objetos grandes).
Retornos
true
se o runtime for capaz de confirmar a quantidade necessária de memória e o coletor de lixo for capaz de entrar no modo de latência não região GC; caso contrário, false
.
- Atributos
Exceções
totalSize
-
lohSize
excede o tamanho do segmento efêmero.
O processo já está em modo de latência não região GC.
Comentários
O TryStartNoGCRegion(Int64, Int64) método tenta colocar o coletor de lixo no modo de latência de região GC, que não permite a coleta de lixo enquanto um aplicativo executa uma região crítica de código. Se o runtime não puder alocar inicialmente a quantidade de memória solicitada, o coletor de lixo executará uma coleta de lixo de bloqueio completo na tentativa de liberar memória adicional. O coletor de lixo não entrará no modo de latência da região do GC se for capaz de alocar lohSize
para o LOH e totalSize
- lohSize
para o SOH (heap de objetos pequenos).
lohSize
deve ser grande o suficiente para lidar com todas as alocações de memória que ocorrem no caminho crítico para o LOH e totalSize
- lohSize
deve ser grande o suficiente para lidar com todas as alocações de memória que ocorrem no caminho crítico para o SOH. Isso inclui alocações pelo aplicativo, bem como alocações que o runtime faz em nome do aplicativo.
Importante
Você não pode aninhar chamadas para o TryStartNoGCRegion método e só deverá chamar o EndNoGCRegion método se o runtime estiver atualmente em nenhum modo de latência de região GC. Em outras palavras, você não deve chamar TryStartNoGCRegion várias vezes (após a primeira chamada de método, as chamadas subsequentes não serão bem-sucedidas) e você não deve esperar que as chamadas EndNoGCRegion tenham êxito apenas porque a primeira chamada foi TryStartNoGCRegion bem-sucedida.
Você sai do modo de latência de região sem GC chamando o EndNoGCRegion método .
Confira também
Aplica-se a
TryStartNoGCRegion(Int64, Boolean)
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
Tenta não permitir a coleta de lixo durante a execução de um caminho crítico se houver uma quantidade especificada de memória disponível e controla se o coletor de lixo faz uma coleta de lixo de bloqueio completo se nenhuma memória suficiente estiver inicialmente disponível.
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
Parâmetros
- totalSize
- Int64
A quantidade de memória em bytes a se alocar sem disparar uma coleta de lixo. Ela deve ser menor ou igual ao tamanho de um segmento efêmero. Para obter informações sobre o tamanho de um segmento efêmero, consulte a seção "Gerações e segmentos efêmeros" no artigo Conceitos básicos sobre a coleta de lixo.
- disallowFullBlockingGC
- Boolean
true
para omitir uma coleta de lixo de bloqueio completo se o coletor de lixo inicialmente não puder alocar totalSize
bytes; caso contrário, false
.
Retornos
true
se o runtime for capaz de confirmar a quantidade necessária de memória e o coletor de lixo for capaz de entrar no modo de latência não região GC; caso contrário, false
.
- Atributos
Exceções
totalSize
excede o tamanho do segmento efêmero.
O processo já está em modo de latência não região GC.
Comentários
O TryStartNoGCRegion(Int64, Boolean) método tenta colocar o coletor de lixo no modo de latência de região GC, que não permite a coleta de lixo enquanto um aplicativo executa uma região crítica de código. Se o runtime não puder alocar inicialmente a quantidade de memória solicitada e o disallowFullBlockingGC
argumento for false
, o coletor de lixo executará uma coleta de lixo de bloqueio completo na tentativa de liberar memória adicional; caso contrário, a alocação falhará e o método retornará false
. O coletor de lixo não entrará no modo de latência da região do GC se for capaz de alocar a quantidade necessária de memória, que nesse caso é, na verdade, 2 * totalSize
(ele tenta alocar totalSize
para o heap de objeto pequeno e totalSize
para o heap de objeto grande).
totalSize
deve ser grande o suficiente para lidar com todas as alocações de memória que ocorrem no caminho crítico. Isso inclui alocações pelo aplicativo, bem como alocações que o runtime faz em nome do aplicativo.
A configuração disallowFullBlockingGC
para true
evitar uma coleta de lixo de bloqueio completo se não houver memória suficiente inicialmente disponível é mais útil em cenários de balanceamento de carga: um sistema pode chamar esse método e relatar-se como pronto para aceitar solicitações se retornar true
e fazer com que o balanceador de carga redirecione solicitações para outros sistemas se retornar false
. Em seguida, ele pode fazer uma coleta de lixo de bloqueio completo quando não está tratando solicitações chamando o Collect(Int32, GCCollectionMode, Boolean, Boolean) método .
Importante
Você não pode aninhar chamadas para o TryStartNoGCRegion método e só deverá chamar o EndNoGCRegion método se o runtime estiver atualmente em nenhum modo de latência de região GC. Em outras palavras, você não deve chamar TryStartNoGCRegion várias vezes (após a primeira chamada de método, as chamadas subsequentes não serão bem-sucedidas) e você não deve esperar que as chamadas EndNoGCRegion tenham êxito apenas porque a primeira chamada foi TryStartNoGCRegion bem-sucedida.
Você sai do modo de latência de região sem GC chamando o EndNoGCRegion método .
Confira também
Aplica-se a
TryStartNoGCRegion(Int64)
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
Tentar desabilitar a coleta de lixo durante a execução de um caminho crítico se uma quantidade especificada de memória estiver disponível.
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
Parâmetros
- totalSize
- Int64
A quantidade de memória em bytes a se alocar sem disparar uma coleta de lixo. Ela deve ser menor ou igual ao tamanho de um segmento efêmero. Para obter informações sobre o tamanho de um segmento efêmero, consulte a seção "Gerações e segmentos efêmeros" no artigo Conceitos básicos sobre a coleta de lixo.
Retornos
true
se o runtime for capaz de confirmar a quantidade necessária de memória e o coletor de lixo for capaz de entrar no modo de latência não região GC; caso contrário, false
.
- Atributos
Exceções
totalSize
excede o tamanho do segmento efêmero.
O processo já está em modo de latência não região GC.
Comentários
O TryStartNoGCRegion(Int64) método tenta colocar o coletor de lixo no modo de latência de região GC, que não permite a coleta de lixo enquanto um aplicativo executa uma região crítica de código. Se o runtime não puder alocar inicialmente a quantidade de memória solicitada, o coletor de lixo executará uma coleta de lixo de bloqueio completo na tentativa de liberar memória adicional. O coletor de lixo não entrará no modo de latência da região GC se for capaz de alocar a quantidade necessária de memória, que nesse caso é, na verdade, 2 * totalSize
bytes (ele tenta alocar totalSize
bytes para o heap de objeto pequeno e totalSize
bytes para o heap de objeto grande).
totalSize
deve ser grande o suficiente para lidar com todas as alocações de memória que ocorrem no caminho crítico. Isso inclui alocações pelo aplicativo, bem como alocações que o runtime faz em nome do aplicativo.
Importante
Você não pode aninhar chamadas para o TryStartNoGCRegion método e só deverá chamar o EndNoGCRegion método se o runtime estiver atualmente em nenhum modo de latência de região GC. Em outras palavras, você não deve chamar TryStartNoGCRegion várias vezes (após a primeira chamada de método, as chamadas subsequentes não serão bem-sucedidas) e você não deve esperar que as chamadas EndNoGCRegion tenham êxito apenas porque a primeira chamada foi TryStartNoGCRegion bem-sucedida.
Você sai do modo de latência de região sem GC chamando o EndNoGCRegion método .