GC.TryStartNoGCRegion Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Intenta suspender la recolección de elementos durante la ejecución de una ruta crítica.
Sobrecargas
TryStartNoGCRegion(Int64, Int64, Boolean) |
Intenta suspender la recolección de elementos no usados durante la ejecución de una ruta crítica si una cantidad especificada de memoria está disponible para los montones de objetos grandes y pequeños, y controla si el recolector de elementos no usados realiza una recolección de elementos no usados de bloqueo completa si no hay suficiente memoria disponible inicialmente. |
TryStartNoGCRegion(Int64, Int64) |
Intenta suspender la recolección de elementos no usados durante la ejecución de una ruta crítica si una cantidad específica de memoria está disponible para los montones de objetos pequeños y grandes. |
TryStartNoGCRegion(Int64, Boolean) |
Intenta suspender la recolección de elementos no usados durante la ejecución de una ruta crítica si una cantidad especificada de memoria está disponible y controla si el recolector de elementos no usados realiza una recolección de elementos no usados de bloqueo completa si no hay suficiente memoria disponible inicialmente. |
TryStartNoGCRegion(Int64) |
Intenta suspender la recolección de elementos durante la ejecución de una ruta crítica si una cantidad específica de memoria está disponible. |
Comentarios
Importante
No puede anidar llamadas al TryStartNoGCRegion método y solo debe llamar al EndNoGCRegion método si el tiempo de ejecución no está actualmente en modo de latencia de región de GC. En otras palabras, no debe llamar TryStartNoGCRegion varias veces (después de la primera llamada al método, las llamadas posteriores no se realizarán correctamente) y no debe esperar que las llamadas se EndNoGCRegion realicen correctamente solo porque la primera llamada a TryStartNoGCRegion se realizó correctamente.
TryStartNoGCRegion(Int64, Int64, Boolean)
- Source:
- GC.CoreCLR.cs
- Source:
- GC.CoreCLR.cs
- Source:
- GC.CoreCLR.cs
Intenta suspender la recolección de elementos no usados durante la ejecución de una ruta crítica si una cantidad especificada de memoria está disponible para los montones de objetos grandes y pequeños, y controla si el recolector de elementos no usados realiza una recolección de elementos no usados de bloqueo completa 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
La cantidad de memoria en bytes que se asignan sin desencadenar una recolección.
totalSize
-
lohSize
debe ser menor o igual que el tamaño de un segmento efímero. Para saber más sobre el tamaño de un segmento efímero, vea la sección "Generaciones y segmentos efímeros" del artículo Fundamentos de la recolección de elementos no utilizados.
- lohSize
- Int64
El número de bytes de totalSize
que se utilizarán para las asignaciones de montones de objetos grandes (LOH).
- disallowFullBlockingGC
- Boolean
true
para omitir una recolección de elementos no utilizados si el recolector de elementos no utilizados no puede asignar inicialmente la memoria especificada al montón de objetos pequeños (SOH) y LOH; en caso contrario, false
.
Devoluciones
true
si el tiempo de ejecución pudo confirmar la cantidad necesaria de memoria y el recolector de elementos no utilizados puede entrar en el modo de no latencia en la región GC; en caso contrario, false
.
- Atributos
Excepciones
totalSize
-
lohSize
supera el tamaño del segmento efímero.
El proceso ya está en modo de no 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 una recolección completa de elementos no utilizados de bloqueo 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
debe ser lo suficientemente grande como para controlar todas las asignaciones de memoria que se producen en la ruta 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 completa de elementos no utilizados de bloqueo 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 true
y 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 puede anidar llamadas al TryStartNoGCRegion método y solo debe llamar al EndNoGCRegion método si el tiempo de ejecución no está actualmente en modo de latencia de región de GC. En otras palabras, no debe llamar TryStartNoGCRegion varias veces (después de la primera llamada al método, las llamadas posteriores no se realizarán correctamente) y no debe esperar que las llamadas se EndNoGCRegion realicen correctamente solo porque la primera llamada a TryStartNoGCRegion se realizó correctamente.
Para salir del modo de latencia de la región sin 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
Intenta suspender la recolección de elementos no usados durante la ejecución de una ruta crítica si una cantidad específica de memoria está disponible para los montones de objetos pequeños y grandes.
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
La cantidad de memoria en bytes que se asignan sin desencadenar una recolección.
totalSize
-
lohSize
debe ser menor o igual que el tamaño de un segmento efímero. Para saber más sobre el tamaño de un segmento efímero, vea la sección "Generaciones y segmentos efímeros" del artículo Fundamentos de la recolección de elementos no utilizados.
- lohSize
- Int64
El número de bytes de totalSize
que se utilizarán para las asignaciones de montones de objetos grandes (LOH).
Devoluciones
true
si el tiempo de ejecución pudo confirmar la cantidad necesaria de memoria y el recolector de elementos no utilizados puede entrar en el modo de no latencia en la región GC; en caso contrario, false
.
- Atributos
Excepciones
totalSize
-
lohSize
supera el tamaño del segmento efímero.
El proceso ya está en modo de no 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 completa de elementos no utilizados de bloqueo 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
debe ser lo suficientemente grande como para controlar todas las asignaciones de memoria que se producen en la ruta 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 puede anidar llamadas al TryStartNoGCRegion método y solo debe llamar al EndNoGCRegion método si el tiempo de ejecución no está actualmente en modo de latencia de región de GC. En otras palabras, no debe llamar TryStartNoGCRegion varias veces (después de la primera llamada al método, las llamadas posteriores no se realizarán correctamente) y no debe esperar que las llamadas se EndNoGCRegion realicen correctamente solo porque la primera llamada a TryStartNoGCRegion se realizó correctamente.
Para salir del modo de latencia de la región sin 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
Intenta suspender la recolección de elementos no usados durante la ejecución de una ruta crítica si una cantidad especificada de memoria está disponible y controla si el recolector de elementos no usados realiza una recolección de elementos no usados 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
La cantidad de memoria en bytes que se asignan sin desencadenar una recolección. Debe ser menor o igual que el tamaño de un segmento efímero. Para saber más sobre el tamaño de un segmento efímero, vea la sección "Generaciones y segmentos efímeros" del artículo Fundamentos 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 inicialmente totalSize
bytes; en caso contrario, false
.
Devoluciones
true
si el tiempo de ejecución pudo confirmar la cantidad necesaria de memoria y el recolector de elementos no utilizados puede entrar en el modo de no latencia en la región GC; en caso contrario, false
.
- Atributos
Excepciones
totalSize
supera el tamaño del segmento efímero.
El proceso ya está en modo de no 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 una recolección completa de elementos no utilizados de bloqueo 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 puede asignar la cantidad de memoria necesaria, que en este caso es realmente 2 * totalSize
(intenta asignar totalSize
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 completa de elementos no utilizados de bloqueo 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 true
y 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 puede anidar llamadas al TryStartNoGCRegion método y solo debe llamar al EndNoGCRegion método si el tiempo de ejecución no está actualmente en modo de latencia de región de GC. En otras palabras, no debe llamar TryStartNoGCRegion varias veces (después de la primera llamada al método, las llamadas posteriores no se realizarán correctamente) y no debe esperar que las llamadas se EndNoGCRegion realicen correctamente solo porque la primera llamada a TryStartNoGCRegion se realizó correctamente.
Para salir del modo de latencia de la región sin 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
Intenta suspender la recolección de elementos durante la ejecución de una ruta crítica si una cantidad específica de memoria está disponible.
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
La cantidad de memoria en bytes que se asignan sin desencadenar una recolección. Debe ser menor o igual que el tamaño de un segmento efímero. Para saber más sobre el tamaño de un segmento efímero, vea la sección "Generaciones y segmentos efímeros" del artículo Fundamentos de la recolección de elementos no utilizados.
Devoluciones
true
si el tiempo de ejecución pudo confirmar la cantidad necesaria de memoria y el recolector de elementos no utilizados puede entrar en el modo de no latencia en la región GC; en caso contrario, false
.
- Atributos
Excepciones
totalSize
supera el tamaño del segmento efímero.
El proceso ya está en modo de no 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 completa de elementos no utilizados de bloqueo 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 puede anidar llamadas al TryStartNoGCRegion método y solo debe llamar al EndNoGCRegion método si el tiempo de ejecución no está actualmente en modo de latencia de región de GC. En otras palabras, no debe llamar TryStartNoGCRegion varias veces (después de la primera llamada al método, las llamadas posteriores no se realizarán correctamente) y no debe esperar que las llamadas se EndNoGCRegion realicen correctamente solo porque la primera llamada a TryStartNoGCRegion se realizó correctamente.
Para salir del modo de latencia de la región sin GC, llame al EndNoGCRegion método .