GC.TryStartNoGCRegion 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.
Tentativas de impedir a recolha de lixo durante a execução de um caminho crítico.
Sobrecargas
| Name | Description |
|---|---|
| TryStartNoGCRegion(Int64, Int64, Boolean) |
Tenta impedir a recolha de lixo durante a execução de um caminho crítico se houver uma quantidade especificada de memória disponível para o monte de objetos grande e para o monte de objetos pequeno, e controla se o coletor de lixo faz uma recolha de lixo bloqueante completa se inicialmente não houver memória suficiente disponível. |
| TryStartNoGCRegion(Int64, Int64) |
Tentativas de impedir a recolha de lixo durante a execução de um caminho crítico se houver uma quantidade especificada de memória disponível para o heap de objetos grande e para o heap de objetos pequeno. |
| TryStartNoGCRegion(Int64, Boolean) |
Tenta impedir a recolha 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 realiza uma recolha de lixo bloqueante completa caso não haja memória suficiente inicialmente disponível. |
| TryStartNoGCRegion(Int64) |
Tentativas de impedir a recolha de lixo durante a execução de um caminho crítico se houver uma quantidade especificada de memória disponível. |
Observações
Importante
Não é possível aninhar chamadas para o TryStartNoGCRegion método e você só deve chamar o EndNoGCRegion método se o tempo de execução estiver atualmente em nenhum modo de latência de região GC. Em outras palavras, você não deve ligar TryStartNoGCRegion várias vezes (após a primeira chamada de método, as chamadas subsequentes não terão êxito), e você não deve esperar que as chamadas EndNoGCRegion sejam bem-sucedidas 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
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
Tenta impedir a recolha de lixo durante a execução de um caminho crítico se houver uma quantidade especificada de memória disponível para o monte de objetos grande e para o monte de objetos pequeno, e controla se o coletor de lixo faz uma recolha de lixo bloqueante completa se inicialmente não houver memória suficiente 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 alocar sem desencadear uma recolha de lixo.
totalSize
-
lohSize deve ser menor ou igual ao tamanho de um segmento efémero. Para informações sobre o tamanho de um segmento efémero, consulte a secção "Gerações e segmentos efémeros" no artigo Fundamentos da Recolha de Lixo .
- lohSize
- Int64
O número de bytes a totalSize usar para alocações de grandes pilhas de objetos (LOH).
- disallowFullBlockingGC
- Boolean
true para omitir uma recolha de lixo bloqueante completa se o coletor de lixo inicialmente não conseguir alocar a memória especificada no pequeno heap de objetos (SOH) e LOH; caso contrário, false.
Devoluções
true se o runtime conseguiu comprometer a quantidade de memória necessária e o coletor de lixo não conseguir entrar em modo de latência da região GC; caso contrário, false.
- Atributos
Exceções
totalSize
-
lohSize excede o tamanho efémero do segmento.
O processo já está em modo de latência regional sem GC.
Observações
O TryStartNoGCRegion(Int64, Int64, Boolean) método tenta colocar o coletor de lixo em modo sem latência de região GC, o que impede a recolha de lixo enquanto uma aplicação executa uma região crítica de código. Se o runtime não conseguir inicialmente alocar a quantidade de memória solicitada e o disallowFullBlockingGC argumento for false, o coletor de lixo realiza uma recolha de lixo bloqueante completa numa tentativa de libertar memória adicional; caso contrário, a alocação falha e o método retorna false. O coletor de lixo não entra em modo de latência regional GC se conseguir alocar lohSize para o LOH e totalSize - lohSize para o pequeno heap de objetos (SOH).
lohSize deve ser suficientemente grande para lidar com todas as alocações de memória que ocorrem no caminho crítico para o LOH, e totalSize - lohSize deve ser suficientemente grande para lidar com todas as alocações de memória que ocorrem no caminho crítico para o SOH. Isto inclui as alocações feitas pela aplicação, bem como as alocações que o tempo de execução faz em nome da aplicação.
Definir disallowFullBlockingGC para true evitar uma recolha de lixo bloqueante total se não houver memória suficiente disponível inicialmente é mais útil em cenários de balanceamento de carga: um sistema pode chamar este método e reportar-se como pronto a aceitar pedidos se devolver true, e fazer com que o balanceador de carga redirecione pedidos para outros sistemas se devolver false. Pode então fazer uma recolha de lixo bloqueante completa quando não está a tratar pedidos, chamando o Collect(Int32, GCCollectionMode, Boolean, Boolean) método.
Importante
Não é possível aninhar chamadas para o TryStartNoGCRegion método e você só deve chamar o EndNoGCRegion método se o tempo de execução estiver atualmente em nenhum modo de latência de região GC. Em outras palavras, você não deve ligar TryStartNoGCRegion várias vezes (após a primeira chamada de método, as chamadas subsequentes não terão êxito), e você não deve esperar que as chamadas EndNoGCRegion sejam bem-sucedidas apenas porque a primeira chamada foi TryStartNoGCRegion bem-sucedida.
Sais do modo de latência da região sem GC ao chamar o EndNoGCRegion método.
Ver 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
Tentativas de impedir a recolha de lixo durante a execução de um caminho crítico se houver uma quantidade especificada de memória disponível para o heap de objetos grande e para o heap de objetos 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 alocar sem desencadear uma recolha de lixo.
totalSize
-
lohSize deve ser menor ou igual ao tamanho de um segmento efémero. Para informações sobre o tamanho de um segmento efémero, consulte a secção "Gerações e segmentos efémeros" no artigo Fundamentos da Recolha de Lixo .
- lohSize
- Int64
O número de bytes a totalSize usar para alocações de grandes pilhas de objetos (LOH).
Devoluções
true se o runtime conseguiu comprometer a quantidade de memória necessária e o coletor de lixo não conseguir entrar em modo de latência da região GC; caso contrário, false.
- Atributos
Exceções
totalSize
-
lohSize excede o tamanho efémero do segmento.
O processo já está em modo de latência regional sem GC.
Observações
O TryStartNoGCRegion(Int64, Int64) método tenta colocar o coletor de lixo em modo sem latência de região GC, o que impede a recolha de lixo enquanto uma aplicação executa uma região crítica de código. Se o tempo de execução não conseguir inicialmente alocar a quantidade de memória solicitada, o coletor de lixo realiza uma recolha de lixo bloqueante completa numa tentativa de libertar memória adicional. O coletor de lixo não entra em modo de latência regional GC se conseguir alocar lohSize para o LOH e totalSize - lohSize para o pequeno heap de objetos (SOH).
lohSize deve ser suficientemente grande para lidar com todas as alocações de memória que ocorrem no caminho crítico para o LOH, e totalSize - lohSize deve ser suficientemente grande para lidar com todas as alocações de memória que ocorrem no caminho crítico para o SOH. Isto inclui as alocações feitas pela aplicação, bem como as alocações que o tempo de execução faz em nome da aplicação.
Importante
Não é possível aninhar chamadas para o TryStartNoGCRegion método e você só deve chamar o EndNoGCRegion método se o tempo de execução estiver atualmente em nenhum modo de latência de região GC. Em outras palavras, você não deve ligar TryStartNoGCRegion várias vezes (após a primeira chamada de método, as chamadas subsequentes não terão êxito), e você não deve esperar que as chamadas EndNoGCRegion sejam bem-sucedidas apenas porque a primeira chamada foi TryStartNoGCRegion bem-sucedida.
Sais do modo de latência da região sem GC ao chamar o EndNoGCRegion método.
Ver 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 impedir a recolha 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 realiza uma recolha de lixo bloqueante completa caso não haja 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 alocar sem desencadear uma recolha de lixo. Deve ser menor ou igual ao tamanho de um segmento efémero. Para informações sobre o tamanho de um segmento efémero, consulte a secção "Gerações e segmentos efémeros" no artigo Fundamentos da Recolha de Lixo .
- disallowFullBlockingGC
- Boolean
true para omitir uma recolha de lixo bloqueante completa se o coletor de lixo inicialmente não conseguir alocar totalSize bytes; caso contrário, false.
Devoluções
true se o runtime conseguiu comprometer a quantidade de memória necessária e o coletor de lixo não conseguir entrar em modo de latência da região GC; caso contrário, false.
- Atributos
Exceções
totalSize excede o tamanho efémero do segmento.
O processo já está em modo de latência regional sem GC.
Observações
O TryStartNoGCRegion(Int64, Boolean) método tenta colocar o coletor de lixo em modo sem latência de região GC, o que impede a recolha de lixo enquanto uma aplicação executa uma região crítica de código. Se o runtime não conseguir inicialmente alocar a quantidade de memória solicitada e o disallowFullBlockingGC argumento for false, o coletor de lixo realiza uma recolha de lixo bloqueante completa numa tentativa de libertar memória adicional; caso contrário, a alocação falha e o método retorna false. O coletor de lixo não entra em modo de latência de região GC se conseguir alocar a quantidade de memória necessária, que neste caso é na verdade 2 * totalSize (tenta alocar totalSize para o pequeno monte de objetos e totalSize para o grande monte de objetos).
totalSize deve ser suficientemente grande para lidar com todas as alocações de memória que ocorrem no caminho crítico. Isto inclui as alocações feitas pela aplicação, bem como as alocações que o tempo de execução faz em nome da aplicação.
Definir disallowFullBlockingGC para true evitar uma recolha de lixo bloqueante total se não houver memória suficiente disponível inicialmente é mais útil em cenários de balanceamento de carga: um sistema pode chamar este método e reportar-se como pronto a aceitar pedidos se devolver true, e fazer com que o balanceador de carga redirecione pedidos para outros sistemas se devolver false. Pode então fazer uma recolha de lixo bloqueante completa quando não está a tratar pedidos, chamando o Collect(Int32, GCCollectionMode, Boolean, Boolean) método.
Importante
Não é possível aninhar chamadas para o TryStartNoGCRegion método e você só deve chamar o EndNoGCRegion método se o tempo de execução estiver atualmente em nenhum modo de latência de região GC. Em outras palavras, você não deve ligar TryStartNoGCRegion várias vezes (após a primeira chamada de método, as chamadas subsequentes não terão êxito), e você não deve esperar que as chamadas EndNoGCRegion sejam bem-sucedidas apenas porque a primeira chamada foi TryStartNoGCRegion bem-sucedida.
Sais do modo de latência da região sem GC ao chamar o EndNoGCRegion método.
Ver 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
Tentativas de impedir a recolha de lixo durante a execução de um caminho crítico se houver uma quantidade especificada de memória 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 alocar sem desencadear uma recolha de lixo. Deve ser menor ou igual ao tamanho de um segmento efémero. Para informações sobre o tamanho de um segmento efémero, consulte a secção "Gerações e segmentos efémeros" no artigo Fundamentos da Recolha de Lixo .
Devoluções
true se o runtime conseguiu comprometer a quantidade de memória necessária e o coletor de lixo não conseguir entrar em modo de latência da região GC; caso contrário, false.
- Atributos
Exceções
totalSize excede o tamanho efémero do segmento.
O processo já está em modo de latência regional sem GC.
Observações
O TryStartNoGCRegion(Int64) método tenta colocar o coletor de lixo em modo sem latência de região GC, o que impede a recolha de lixo enquanto uma aplicação executa uma região crítica de código. Se o tempo de execução não conseguir inicialmente alocar a quantidade de memória solicitada, o coletor de lixo realiza uma recolha de lixo bloqueante completa numa tentativa de libertar memória adicional. O coletor de lixo não entra em modo de latência da região GC se conseguir alocar a quantidade de memória necessária, que neste caso são na verdade 2* totalSize bytes (tenta alocar totalSize bytes para o pequeno heap de objetos e totalSize bytes para o heap de objeto grande).
totalSize deve ser suficientemente grande para lidar com todas as alocações de memória que ocorrem no caminho crítico. Isto inclui as alocações feitas pela aplicação, bem como as alocações que o tempo de execução faz em nome da aplicação.
Importante
Não é possível aninhar chamadas para o TryStartNoGCRegion método e você só deve chamar o EndNoGCRegion método se o tempo de execução estiver atualmente em nenhum modo de latência de região GC. Em outras palavras, você não deve ligar TryStartNoGCRegion várias vezes (após a primeira chamada de método, as chamadas subsequentes não terão êxito), e você não deve esperar que as chamadas EndNoGCRegion sejam bem-sucedidas apenas porque a primeira chamada foi TryStartNoGCRegion bem-sucedida.
Sais do modo de latência da região sem GC ao chamar o EndNoGCRegion método.