GC.TryStartNoGCRegion Método

Definición

Intenta denegar la recolección de elementos no utilizados durante la ejecución de una ruta de acceso crítica.

Sobrecargas

Nombre Description
TryStartNoGCRegion(Int64, Int64, Boolean)

Intenta denegar la recolección de elementos no utilizados durante la ejecución de una ruta de acceso crítica si hay disponible una cantidad especificada de memoria para el montón de objetos grandes y el montón de objetos pequeños, y controla si el recolector de elementos no utilizados bloquea completamente la recolección de elementos no utilizados si no hay suficiente memoria disponible inicialmente.

TryStartNoGCRegion(Int64, Int64)

Intenta denegar la recolección de elementos no utilizados durante la ejecución de una ruta de acceso crítica si hay disponible una cantidad especificada de memoria para el montón de objetos grandes y el montón de objetos pequeños.

TryStartNoGCRegion(Int64, Boolean)

Intenta denegar la recolección de elementos no utilizados durante la ejecución de una ruta de acceso crítica si hay disponible una cantidad especificada de memoria y controla si el recolector de elementos no utilizados realiza una recolección de elementos no utilizados de bloqueo completa si no hay suficiente memoria disponible inicialmente.

TryStartNoGCRegion(Int64)

Intenta denegar la recolección de elementos no utilizados durante la ejecución de una ruta de acceso crítica si hay disponible una cantidad especificada de memoria.

Comentarios

Importante

No se pueden anidar llamadas al método TryStartNoGCRegion y solo debe llamar al método EndNoGCRegion si el tiempo de ejecución no está actualmente en modo de latencia de región de GC. En otras palabras, no debe llamar a TryStartNoGCRegion varias veces (después de la primera llamada al método, las llamadas posteriores no tendrán éxito), y no debe esperar que las llamadas a EndNoGCRegion tengan éxito simplemente porque la primera llamada a TryStartNoGCRegion tuvo éxito.

TryStartNoGCRegion(Int64, Int64, Boolean)

Source:
GC.CoreCLR.cs
Source:
GC.CoreCLR.cs
Source:
GC.CoreCLR.cs
Source:
GC.CoreCLR.cs
Source:
GC.CoreCLR.cs

Intenta denegar la recolección de elementos no utilizados durante la ejecución de una ruta de acceso crítica si hay disponible una cantidad especificada de memoria para el montón de objetos grandes y el montón de objetos pequeños, y controla si el recolector de elementos no utilizados bloquea completamente la recolección de elementos no utilizados si no hay suficiente memoria disponible inicialmente.

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

Cantidad de memoria en bytes que se va a asignar sin desencadenar una recolección de elementos no utilizados. totalSize - lohSize debe ser menor o igual que el tamaño de un segmento efímero. Para obtener información sobre el tamaño de un segmento efímero, vea la sección "Generaciones y segmentos efímeros" del artículo Aspectos básicos de la recolección de elementos no utilizados.

lohSize
Int64

Número de bytes en totalSize que se van a usar para asignaciones de montón de objetos grandes (LOH).

disallowFullBlockingGC
Boolean

true para omitir una recolección de elementos no utilizados de bloqueo completa si el recolector de elementos no utilizados no puede asignar inicialmente la memoria especificada en el montón de objetos pequeños (SOH) y LOH; de lo contrario, false.

Devoluciones

true si el tiempo de ejecución pudo confirmar la cantidad de memoria necesaria y el recolector de elementos no utilizados puede especificar ningún modo de latencia de región de GC; de lo contrario, false.

Atributos

Excepciones

totalSize - lohSize supera el tamaño del segmento efímero.

El proceso ya no está en modo de latencia de región de GC.

Comentarios

El TryStartNoGCRegion(Int64, Int64, Boolean) método intenta colocar el recolector de elementos no utilizados en ningún modo de latencia de región de GC, lo que no permite la recolección de elementos no utilizados mientras una aplicación ejecuta una región crítica del código. Si el tiempo de ejecución no puede asignar inicialmente la cantidad de memoria solicitada y el disallowFullBlockingGC argumento es false, el recolector de elementos no utilizados realiza un bloqueo completo de la recolección de elementos no utilizados en un intento de liberar memoria adicional; de lo contrario, se produce un error en la asignación y el método devuelve false. El recolector de elementos no utilizados no entra en modo de latencia de región de GC si es capaz de asignar lohSize para loH y totalSize - lohSize para el montón de objetos pequeños (SOH).

lohSize debe ser lo suficientemente grande como para controlar todas las asignaciones de memoria que se producen en la ruta de acceso crítica para loH y totalSize - lohSize deben ser lo suficientemente grandes como para controlar todas las asignaciones de memoria que se producen en la ruta de acceso crítica para el SOH. Esto incluye las asignaciones de la aplicación, así como las asignaciones que realiza el tiempo de ejecución en nombre de la aplicación.

Establecer disallowFullBlockingGC en true para evitar una recolección de elementos no utilizados de bloqueo completa si no hay suficiente memoria disponible inicialmente es más útil en escenarios de equilibrio de carga: un sistema puede llamar a este método y notificarse como listo para aceptar solicitudes si devuelve truey hacer que el equilibrador de carga redirija las solicitudes a otros sistemas si devuelve false. A continuación, puede realizar una recolección de elementos no utilizados de bloqueo completa cuando no controla las solicitudes llamando al Collect(Int32, GCCollectionMode, Boolean, Boolean) método .

Importante

No se pueden anidar llamadas al método TryStartNoGCRegion y solo debe llamar al método EndNoGCRegion si el tiempo de ejecución no está actualmente en modo de latencia de región de GC. En otras palabras, no debe llamar a TryStartNoGCRegion varias veces (después de la primera llamada al método, las llamadas posteriores no tendrán éxito), y no debe esperar que las llamadas a EndNoGCRegion tengan éxito simplemente porque la primera llamada a TryStartNoGCRegion tuvo éxito.

Para salir del modo de latencia de región no gc, llame al EndNoGCRegion método .

Consulte también

Se aplica a

TryStartNoGCRegion(Int64, Int64)

Source:
GC.CoreCLR.cs
Source:
GC.CoreCLR.cs
Source:
GC.CoreCLR.cs
Source:
GC.CoreCLR.cs
Source:
GC.CoreCLR.cs

Intenta denegar la recolección de elementos no utilizados durante la ejecución de una ruta de acceso crítica si hay disponible una cantidad especificada de memoria para el montón de objetos grandes y el montón de objetos pequeños.

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

Cantidad de memoria en bytes que se va a asignar sin desencadenar una recolección de elementos no utilizados. totalSize - lohSize debe ser menor o igual que el tamaño de un segmento efímero. Para obtener información sobre el tamaño de un segmento efímero, vea la sección "Generaciones y segmentos efímeros" del artículo Aspectos básicos de la recolección de elementos no utilizados.

lohSize
Int64

Número de bytes en totalSize que se van a usar para asignaciones de montón de objetos grandes (LOH).

Devoluciones

true si el tiempo de ejecución pudo confirmar la cantidad de memoria necesaria y el recolector de elementos no utilizados puede especificar ningún modo de latencia de región de GC; de lo contrario, false.

Atributos

Excepciones

totalSize - lohSize supera el tamaño del segmento efímero.

El proceso ya no está en modo de latencia de región de GC.

Comentarios

El TryStartNoGCRegion(Int64, Int64) método intenta colocar el recolector de elementos no utilizados en ningún modo de latencia de región de GC, lo que no permite la recolección de elementos no utilizados mientras una aplicación ejecuta una región crítica del código. Si el tiempo de ejecución no puede asignar inicialmente la cantidad de memoria solicitada, el recolector de elementos no utilizados realiza una recolección de elementos no utilizados de bloqueo completa en un intento de liberar memoria adicional. El recolector de elementos no utilizados no entra en modo de latencia de región de GC si es capaz de asignar lohSize para loH y totalSize - lohSize para el montón de objetos pequeños (SOH).

lohSize debe ser lo suficientemente grande como para controlar todas las asignaciones de memoria que se producen en la ruta de acceso crítica para loH y totalSize - lohSize deben ser lo suficientemente grandes como para controlar todas las asignaciones de memoria que se producen en la ruta de acceso crítica para el SOH. Esto incluye las asignaciones de la aplicación, así como las asignaciones que realiza el tiempo de ejecución en nombre de la aplicación.

Importante

No se pueden anidar llamadas al método TryStartNoGCRegion y solo debe llamar al método EndNoGCRegion si el tiempo de ejecución no está actualmente en modo de latencia de región de GC. En otras palabras, no debe llamar a TryStartNoGCRegion varias veces (después de la primera llamada al método, las llamadas posteriores no tendrán éxito), y no debe esperar que las llamadas a EndNoGCRegion tengan éxito simplemente porque la primera llamada a TryStartNoGCRegion tuvo éxito.

Para salir del modo de latencia de región no gc, llame al EndNoGCRegion método .

Consulte también

Se aplica a

TryStartNoGCRegion(Int64, Boolean)

Source:
GC.CoreCLR.cs
Source:
GC.CoreCLR.cs
Source:
GC.CoreCLR.cs
Source:
GC.CoreCLR.cs
Source:
GC.CoreCLR.cs

Intenta denegar la recolección de elementos no utilizados durante la ejecución de una ruta de acceso crítica si hay disponible una cantidad especificada de memoria y controla si el recolector de elementos no utilizados realiza una recolección de elementos no utilizados de bloqueo completa si no hay suficiente memoria disponible inicialmente.

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

Cantidad de memoria en bytes que se va a asignar sin desencadenar una recolección de elementos no utilizados. Debe ser menor o igual que el tamaño de un segmento efímero. Para obtener información sobre el tamaño de un segmento efímero, vea la sección "Generaciones y segmentos efímeros" del artículo Aspectos básicos de la recolección de elementos no utilizados.

disallowFullBlockingGC
Boolean

true para omitir una recolección de elementos no utilizados de bloqueo completa si el recolector de elementos no utilizados no puede asignar totalSize bytes inicialmente; de lo contrario, falsees .

Devoluciones

true si el tiempo de ejecución pudo confirmar la cantidad de memoria necesaria y el recolector de elementos no utilizados puede especificar ningún modo de latencia de región de GC; de lo contrario, false.

Atributos

Excepciones

totalSize supera el tamaño del segmento efímero.

El proceso ya no está en modo de latencia de región de GC.

Comentarios

El TryStartNoGCRegion(Int64, Boolean) método intenta colocar el recolector de elementos no utilizados en ningún modo de latencia de región de GC, lo que no permite la recolección de elementos no utilizados mientras una aplicación ejecuta una región crítica del código. Si el tiempo de ejecución no puede asignar inicialmente la cantidad de memoria solicitada y el disallowFullBlockingGC argumento es false, el recolector de elementos no utilizados realiza un bloqueo completo de la recolección de elementos no utilizados en un intento de liberar memoria adicional; de lo contrario, se produce un error en la asignación y el método devuelve false. El recolector de elementos no utilizados no entra en modo de latencia de región de GC si es capaz de asignar la cantidad de memoria necesaria, que en este caso es realmente 2 * totalSize (intenta asignar totalSize para el montón de objetos pequeños y totalSize para el montón de objetos grandes).

totalSize debe ser lo suficientemente grande como para controlar todas las asignaciones de memoria que se producen en la ruta de acceso crítica. Esto incluye las asignaciones de la aplicación, así como las asignaciones que realiza el tiempo de ejecución en nombre de la aplicación.

Establecer disallowFullBlockingGC en true para evitar una recolección de elementos no utilizados de bloqueo completa si no hay suficiente memoria disponible inicialmente es más útil en escenarios de equilibrio de carga: un sistema puede llamar a este método y notificarse como listo para aceptar solicitudes si devuelve truey hacer que el equilibrador de carga redirija las solicitudes a otros sistemas si devuelve false. A continuación, puede realizar una recolección de elementos no utilizados de bloqueo completa cuando no controla las solicitudes llamando al Collect(Int32, GCCollectionMode, Boolean, Boolean) método .

Importante

No se pueden anidar llamadas al método TryStartNoGCRegion y solo debe llamar al método EndNoGCRegion si el tiempo de ejecución no está actualmente en modo de latencia de región de GC. En otras palabras, no debe llamar a TryStartNoGCRegion varias veces (después de la primera llamada al método, las llamadas posteriores no tendrán éxito), y no debe esperar que las llamadas a EndNoGCRegion tengan éxito simplemente porque la primera llamada a TryStartNoGCRegion tuvo éxito.

Para salir del modo de latencia de región no gc, llame al EndNoGCRegion método .

Consulte también

Se aplica a

TryStartNoGCRegion(Int64)

Source:
GC.CoreCLR.cs
Source:
GC.CoreCLR.cs
Source:
GC.CoreCLR.cs
Source:
GC.CoreCLR.cs
Source:
GC.CoreCLR.cs

Intenta denegar la recolección de elementos no utilizados durante la ejecución de una ruta de acceso crítica si hay disponible una cantidad especificada de memoria.

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

Cantidad de memoria en bytes que se va a asignar sin desencadenar una recolección de elementos no utilizados. Debe ser menor o igual que el tamaño de un segmento efímero. Para obtener información sobre el tamaño de un segmento efímero, vea la sección "Generaciones y segmentos efímeros" del artículo Aspectos básicos de la recolección de elementos no utilizados.

Devoluciones

true si el tiempo de ejecución pudo confirmar la cantidad de memoria necesaria y el recolector de elementos no utilizados puede especificar ningún modo de latencia de región de GC; de lo contrario, false.

Atributos

Excepciones

totalSize supera el tamaño del segmento efímero.

El proceso ya no está en modo de latencia de región de GC.

Comentarios

El TryStartNoGCRegion(Int64) método intenta colocar el recolector de elementos no utilizados en ningún modo de latencia de región de GC, lo que no permite la recolección de elementos no utilizados mientras una aplicación ejecuta una región crítica del código. Si el tiempo de ejecución no puede asignar inicialmente la cantidad de memoria solicitada, el recolector de elementos no utilizados realiza una recolección de elementos no utilizados de bloqueo completa en un intento de liberar memoria adicional. El recolector de elementos no utilizados no entra en modo de latencia de región de GC si puede asignar la cantidad de memoria necesaria, que en este caso es realmente de 2 * totalSize bytes (intenta asignar totalSize bytes para el montón de objetos pequeños y totalSize bytes para el montón de objetos grandes).

totalSize debe ser lo suficientemente grande como para controlar todas las asignaciones de memoria que se producen en la ruta de acceso crítica. Esto incluye las asignaciones de la aplicación, así como las asignaciones que realiza el tiempo de ejecución en nombre de la aplicación.

Importante

No se pueden anidar llamadas al método TryStartNoGCRegion y solo debe llamar al método EndNoGCRegion si el tiempo de ejecución no está actualmente en modo de latencia de región de GC. En otras palabras, no debe llamar a TryStartNoGCRegion varias veces (después de la primera llamada al método, las llamadas posteriores no tendrán éxito), y no debe esperar que las llamadas a EndNoGCRegion tengan éxito simplemente porque la primera llamada a TryStartNoGCRegion tuvo éxito.

Para salir del modo de latencia de región no gc, llame al EndNoGCRegion método .

Consulte también

Se aplica a