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.
Tenta não permitir a coleta de lixo durante a execução de um caminho crítico.
Sobrecargas
| Nome | Description |
|---|---|
| TryStartNoGCRegion(Int64, Int64, Boolean) |
Tenta 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 objetos grande e o heap de objetos pequenos e controlar se o coletor de lixo faz uma coleta de lixo de bloqueio completo se não houver memória suficiente inicialmente disponível. |
| TryStartNoGCRegion(Int64, Int64) |
Tenta 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 objetos grandes e o heap de objetos pequenos. |
| TryStartNoGCRegion(Int64, Boolean) |
Tenta desabilitar a coleta de lixo durante a execução de um caminho crítico se uma quantidade especificada de memória estiver disponível e controla se o coletor de lixo faz uma coleta de lixo de bloqueio completo se não houver memória suficiente inicialmente disponível. |
| TryStartNoGCRegion(Int64) |
Tenta 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 método TryStartNoGCRegion e só deve chamar o método EndNoGCRegion se o runtime estiver atualmente no modo de latência de região sem 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 sejam bem-sucedidas apenas porque a primeira chamada TryStartNoGCRegion foi bem-sucedida.
TryStartNoGCRegion(Int64, Int64, Boolean)
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
Tenta 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 objetos grande e o heap de objetos pequenos e controlar se o coletor de lixo faz uma coleta de lixo de bloqueio completo se não houver memória suficiente 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 ser alocada sem disparar uma coleta de lixo.
totalSize
-
lohSize 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 da Coleta de Lixo .
- lohSize
- Int64
O número de bytes a totalSize serem usados para alocações 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 heap de objetos pequeno (SOH) e LOH; caso contrário, false.
Retornos
true se o runtime foi capaz de confirmar a quantidade necessária de memória e o coletor de lixo é capaz de inserir nenhum modo de latência de região GC; caso contrário, false.
- Atributos
Exceções
totalSize
-
lohSize excede o tamanho do segmento efêmero.
O processo já está no modo de latência da 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 do GC, o 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 pequeno heap de objetos (SOH).
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 impedir 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 ele retornar truee fazer com que o balanceador de carga redirecione solicitações para outros sistemas se ele 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 método TryStartNoGCRegion e só deve chamar o método EndNoGCRegion se o runtime estiver atualmente no modo de latência de região sem 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 sejam bem-sucedidas apenas porque a primeira chamada TryStartNoGCRegion foi bem-sucedida.
Você sai do modo de latência de região sem GC chamando o EndNoGCRegion método.
Confira também
- EndNoGCRegion()
- Fundamentos da coleta de lixo
- Modos de latência
Aplica-se a
TryStartNoGCRegion(Int64, Int64)
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
Tenta 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 objetos grandes e o heap de objetos pequenos.
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 ser alocada sem disparar uma coleta de lixo.
totalSize
-
lohSize 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 da Coleta de Lixo .
- lohSize
- Int64
O número de bytes a totalSize serem usados para alocações loh (heap de objetos grandes).
Retornos
true se o runtime foi capaz de confirmar a quantidade necessária de memória e o coletor de lixo é capaz de inserir nenhum modo de latência de região GC; caso contrário, false.
- Atributos
Exceções
totalSize
-
lohSize excede o tamanho do segmento efêmero.
O processo já está no modo de latência da 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 do GC, o 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 conseguir 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 pequeno heap de objetos (SOH).
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 método TryStartNoGCRegion e só deve chamar o método EndNoGCRegion se o runtime estiver atualmente no modo de latência de região sem 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 sejam bem-sucedidas apenas porque a primeira chamada TryStartNoGCRegion foi bem-sucedida.
Você sai do modo de latência de região sem GC chamando o EndNoGCRegion método.
Confira também
- EndNoGCRegion()
- Fundamentos da coleta de lixo
- Modos de latência
Aplica-se a
TryStartNoGCRegion(Int64, Boolean)
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
Tenta desabilitar a coleta de lixo durante a execução de um caminho crítico se uma quantidade especificada de memória estiver disponível e controla se o coletor de lixo faz uma coleta de lixo de bloqueio completo se não houver memória suficiente 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 ser alocada sem disparar uma coleta de lixo. 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 da 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 foi capaz de confirmar a quantidade necessária de memória e o coletor de lixo é capaz de inserir nenhum modo de latência de região GC; caso contrário, false.
- Atributos
Exceções
totalSize excede o tamanho do segmento efêmero.
O processo já está no modo de latência da 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 do GC, o 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 objetos pequenos e totalSize para o heap de objetos grandes).
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 impedir 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 ele retornar truee fazer com que o balanceador de carga redirecione solicitações para outros sistemas se ele 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 método TryStartNoGCRegion e só deve chamar o método EndNoGCRegion se o runtime estiver atualmente no modo de latência de região sem 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 sejam bem-sucedidas apenas porque a primeira chamada TryStartNoGCRegion foi bem-sucedida.
Você sai do modo de latência de região sem GC chamando o EndNoGCRegion método.
Confira também
- EndNoGCRegion()
- Fundamentos da coleta de lixo
- Modos de latência
Aplica-se a
TryStartNoGCRegion(Int64)
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
Tenta 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 ser alocada sem disparar uma coleta de lixo. 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 da Coleta de Lixo .
Retornos
true se o runtime foi capaz de confirmar a quantidade necessária de memória e o coletor de lixo é capaz de inserir nenhum modo de latência de região GC; caso contrário, false.
- Atributos
Exceções
totalSize excede o tamanho do segmento efêmero.
O processo já está no modo de latência da região GC.
Comentários
O TryStartNoGCRegion(Int64) método tenta colocar o coletor de lixo no modo de latência de região do GC, o 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 conseguir 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 a quantidade de memória necessária, que nesse caso é, na verdade, 2 * totalSize bytes (ele tenta alocar totalSize bytes para o heap de objetos pequeno e totalSize bytes para o heap de objetos 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 método TryStartNoGCRegion e só deve chamar o método EndNoGCRegion se o runtime estiver atualmente no modo de latência de região sem 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 sejam bem-sucedidas apenas porque a primeira chamada TryStartNoGCRegion foi bem-sucedida.
Você sai do modo de latência de região sem GC chamando o EndNoGCRegion método.
Confira também
- EndNoGCRegion()
- Fundamentos da coleta de lixo
- Modos de latência