GC.TryStartNoGCRegion Método

Definição

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

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

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

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

Aplica-se a