Condividi tramite


GC.TryStartNoGCRegion Metodo

Definizione

Prova a impedire l'operazione di Garbage Collection durante l'esecuzione di un percorso critico.

Overload

TryStartNoGCRegion(Int64, Int64, Boolean)

Prova a impedire l'operazione di Garbage Collection durante l'esecuzione di un percorso critico se è disponibile una quantità specificata di memoria per gli heap degli oggetti grandi e degli oggetti piccoli; controlla inoltre se il Garbage Collector esegue un'operazione completa di Garbage Collection bloccante se inizialmente non è disponibile memoria sufficiente.

TryStartNoGCRegion(Int64, Int64)

Prova a impedire l'operazione di Garbage Collection durante l'esecuzione di un percorso critico se è disponibile una quantità specificata di memoria per gli heap degli oggetti grandi e degli oggetti piccoli.

TryStartNoGCRegion(Int64, Boolean)

Prova a impedire l'operazione di Garbage Collection durante l'esecuzione di un percorso critico se è disponibile una quantità specificata di memoria; controlla inoltre se il Garbage Collector esegue un'operazione completa di Garbage Collection bloccante se inizialmente non è disponibile memoria sufficiente.

TryStartNoGCRegion(Int64)

Prova a impedire l'operazione di Garbage Collection durante l'esecuzione di un percorso critico se è disponibile una quantità specificata di memoria.

Commenti

Importante

Non è possibile annidare le chiamate al TryStartNoGCRegion metodo e chiamare il EndNoGCRegion metodo solo se il runtime non è attualmente in modalità di latenza dell'area GC. In altre parole, non è consigliabile chiamare TryStartNoGCRegion più volte (dopo la prima chiamata al metodo, le chiamate successive non avranno esito positivo) e non è consigliabile che le chiamate EndNoGCRegion abbiano esito positivo solo perché la prima chiamata a TryStartNoGCRegion ha avuto esito positivo.

TryStartNoGCRegion(Int64, Int64, Boolean)

Prova a impedire l'operazione di Garbage Collection durante l'esecuzione di un percorso critico se è disponibile una quantità specificata di memoria per gli heap degli oggetti grandi e degli oggetti piccoli; controlla inoltre se il Garbage Collector esegue un'operazione completa di Garbage Collection bloccante se inizialmente non è disponibile memoria sufficiente.

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

Parametri

totalSize
Int64

Quantità di memoria in byte da allocare senza attivare un'operazione di Garbage Collection. totalSize -lohSize deve essere minore o uguale alle dimensioni di un segmento temporaneo. Per informazioni sulle dimensioni di un segmento temporaneo, vedere la sezione "Generazioni e segmenti temporanei" nell'articolo Principi fondamentali di Garbage Collection.

lohSize
Int64

Numero di byte in totalSize da usare per allocazioni di heap degli oggetti grandi (LOH).

disallowFullBlockingGC
Boolean

true per omettere un'operazione completa di Garbage Collection bloccante se il Garbage Collector non è inizialmente in grado di allocare la memoria specificata nell'heap degli oggetti piccoli (SOH) e degli oggetti grandi (LOH); in caso contrario, false.

Restituisce

Boolean

true se il runtime è riuscito a eseguire il commit della quantità di memoria richiesta e il Garbage Collector può accedere alla modalità di eliminazione della latenza delle aree di Garbage Collection; in caso contrario, false.

Attributi

Eccezioni

totalSize - lohSize supera le dimensioni del segmento temporaneo.

Il processo è già in modalità di eliminazione della latenza delle aree di Garbage Collection.

Commenti

Il TryStartNoGCRegion(Int64, Int64, Boolean) metodo tenta di posizionare il Garbage Collector in nessuna modalità di latenza dell'area GC, che non consente l'operazione di Garbage Collection mentre un'app esegue un'area critica del codice. Se il runtime non è in grado di allocare inizialmente la quantità di memoria richiesta e l'argomento disallowFullBlockingGC è false, il Garbage Collector esegue un'operazione di Garbage Collection di blocco completa in un tentativo di liberare memoria aggiuntiva; in caso contrario, l'allocazione non riesce e il metodo restituisce false. Il Garbage Collector non entra in modalità di latenza dell'area GC se è in grado di allocare lohSize per LOH e totalSize - lohSize per l'heap di oggetti di piccole dimensioni (SOH).

lohSize deve essere sufficientemente grande da gestire tutte le allocazioni di memoria che si verificano nel percorso critico per loH e totalSize - lohSize deve essere sufficientemente grande da gestire tutte le allocazioni di memoria che si verificano nel percorso critico per il file SOH. Sono incluse le allocazioni dall'app, nonché le allocazioni eseguite dal runtime per conto dell'app.

L'impostazione disallowFullBlockingGC di su true per evitare un'operazione di Garbage Collection di blocco completa se inizialmente non è disponibile memoria sufficiente è particolarmente utile negli scenari di bilanciamento del carico: un sistema può chiamare questo metodo e segnalare se è pronto ad accettare le richieste se restituisce truee chiedere al servizio di bilanciamento del carico di reindirizzare le richieste ad altri sistemi se restituisce false. Può quindi eseguire un'operazione completa di Garbage Collection bloccante quando non gestisce le richieste chiamando il Collect(Int32, GCCollectionMode, Boolean, Boolean) metodo .

Importante

Non è possibile annidare le chiamate al TryStartNoGCRegion metodo e chiamare il EndNoGCRegion metodo solo se il runtime non è attualmente in modalità di latenza dell'area GC. In altre parole, non è consigliabile chiamare TryStartNoGCRegion più volte (dopo la prima chiamata al metodo, le chiamate successive non avranno esito positivo) e non è consigliabile che le chiamate EndNoGCRegion abbiano esito positivo solo perché la prima chiamata a TryStartNoGCRegion ha avuto esito positivo.

Per uscire dalla modalità di latenza dell'area GC, chiamare il EndNoGCRegion metodo .

Vedi anche

Si applica a

TryStartNoGCRegion(Int64, Int64)

Prova a impedire l'operazione di Garbage Collection durante l'esecuzione di un percorso critico se è disponibile una quantità specificata di memoria per gli heap degli oggetti grandi e degli oggetti piccoli.

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

Parametri

totalSize
Int64

Quantità di memoria in byte da allocare senza attivare un'operazione di Garbage Collection. totalSize -lohSize deve essere minore o uguale alle dimensioni di un segmento temporaneo. Per informazioni sulle dimensioni di un segmento temporaneo, vedere la sezione "Generazioni e segmenti temporanei" nell'articolo Principi fondamentali di Garbage Collection.

lohSize
Int64

Numero di byte in totalSize da usare per allocazioni di heap degli oggetti grandi (LOH).

Restituisce

Boolean

true se il runtime è riuscito a eseguire il commit della quantità di memoria richiesta e il Garbage Collector può accedere alla modalità di eliminazione della latenza delle aree di Garbage Collection; in caso contrario, false.

Attributi

Eccezioni

totalSize - lohSize supera le dimensioni del segmento temporaneo.

Il processo è già in modalità di eliminazione della latenza delle aree di Garbage Collection.

Commenti

Il TryStartNoGCRegion(Int64, Int64) metodo tenta di posizionare il Garbage Collector in nessuna modalità di latenza dell'area GC, che non consente l'operazione di Garbage Collection mentre un'app esegue un'area critica del codice. Se il runtime non è in grado di allocare inizialmente la quantità di memoria richiesta, Il Garbage Collector esegue un'operazione di Garbage Collection di blocco completa in un tentativo di liberare memoria aggiuntiva. Il Garbage Collector non entra in modalità di latenza dell'area GC se è in grado di allocare lohSize per LOH e totalSize - lohSize per l'heap di oggetti di piccole dimensioni (SOH).

lohSize deve essere sufficientemente grande da gestire tutte le allocazioni di memoria che si verificano nel percorso critico per loH e totalSize - lohSize deve essere sufficientemente grande da gestire tutte le allocazioni di memoria che si verificano nel percorso critico per il file SOH. Sono incluse le allocazioni dall'app, nonché le allocazioni eseguite dal runtime per conto dell'app.

Importante

Non è possibile annidare le chiamate al TryStartNoGCRegion metodo e chiamare il EndNoGCRegion metodo solo se il runtime non è attualmente in modalità di latenza dell'area GC. In altre parole, non è consigliabile chiamare TryStartNoGCRegion più volte (dopo la prima chiamata al metodo, le chiamate successive non avranno esito positivo) e non è consigliabile che le chiamate EndNoGCRegion abbiano esito positivo solo perché la prima chiamata a TryStartNoGCRegion ha avuto esito positivo.

Per uscire dalla modalità di latenza dell'area GC, chiamare il EndNoGCRegion metodo .

Vedi anche

Si applica a

TryStartNoGCRegion(Int64, Boolean)

Prova a impedire l'operazione di Garbage Collection durante l'esecuzione di un percorso critico se è disponibile una quantità specificata di memoria; controlla inoltre se il Garbage Collector esegue un'operazione completa di Garbage Collection bloccante se inizialmente non è disponibile memoria sufficiente.

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

Parametri

totalSize
Int64

Quantità di memoria in byte da allocare senza attivare un'operazione di Garbage Collection. Deve essere minore o uguale alle dimensioni di un segmento temporaneo. Per informazioni sulle dimensioni di un segmento temporaneo, vedere la sezione "Generazioni e segmenti temporanei" nell'articolo Principi fondamentali di Garbage Collection.

disallowFullBlockingGC
Boolean

true per omettere un'operazione completa di Garbage Collection bloccante se il Garbage Collector non è inizialmente in grado di allocare totalSize byte; in caso contrario, false.

Restituisce

Boolean

true se il runtime è riuscito a eseguire il commit della quantità di memoria richiesta e il Garbage Collector può accedere alla modalità di eliminazione della latenza delle aree di Garbage Collection; in caso contrario, false.

Attributi

Eccezioni

totalSize supera le dimensioni del segmento temporaneo.

Il processo è già in modalità di eliminazione della latenza delle aree di Garbage Collection.

Commenti

Il TryStartNoGCRegion(Int64, Boolean) metodo tenta di posizionare il Garbage Collector in nessuna modalità di latenza dell'area GC, che non consente l'operazione di Garbage Collection mentre un'app esegue un'area critica del codice. Se il runtime non è in grado di allocare inizialmente la quantità di memoria richiesta e l'argomento disallowFullBlockingGC è false, il Garbage Collector esegue un'operazione di Garbage Collection di blocco completa in un tentativo di liberare memoria aggiuntiva; in caso contrario, l'allocazione non riesce e il metodo restituisce false. Il Garbage Collector non entra in modalità di latenza dell'area GC se è in grado di allocare la quantità di memoria richiesta, che in questo caso è effettivamente 2 * totalSize (tenta di allocare totalSize per l'heap di oggetti di piccole dimensioni e totalSize per l'heap di oggetti di grandi dimensioni).

totalSize deve essere sufficientemente grande per gestire tutte le allocazioni di memoria che si verificano nel percorso critico. Sono incluse le allocazioni dall'app, nonché le allocazioni eseguite dal runtime per conto dell'app.

L'impostazione disallowFullBlockingGC di su true per evitare un'operazione di Garbage Collection di blocco completa se inizialmente non è disponibile memoria sufficiente è particolarmente utile negli scenari di bilanciamento del carico: un sistema può chiamare questo metodo e segnalare se è pronto ad accettare le richieste se restituisce truee chiedere al servizio di bilanciamento del carico di reindirizzare le richieste ad altri sistemi se restituisce false. Può quindi eseguire un'operazione completa di Garbage Collection bloccante quando non gestisce le richieste chiamando il Collect(Int32, GCCollectionMode, Boolean, Boolean) metodo .

Importante

Non è possibile annidare le chiamate al TryStartNoGCRegion metodo e chiamare il EndNoGCRegion metodo solo se il runtime non è attualmente in modalità di latenza dell'area GC. In altre parole, non è consigliabile chiamare TryStartNoGCRegion più volte (dopo la prima chiamata al metodo, le chiamate successive non avranno esito positivo) e non è consigliabile che le chiamate EndNoGCRegion abbiano esito positivo solo perché la prima chiamata a TryStartNoGCRegion ha avuto esito positivo.

Per uscire dalla modalità di latenza dell'area GC, chiamare il EndNoGCRegion metodo .

Vedi anche

Si applica a

TryStartNoGCRegion(Int64)

Prova a impedire l'operazione di Garbage Collection durante l'esecuzione di un percorso critico se è disponibile una quantità specificata di 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

Parametri

totalSize
Int64

Quantità di memoria in byte da allocare senza attivare un'operazione di Garbage Collection. Deve essere minore o uguale alle dimensioni di un segmento temporaneo. Per informazioni sulle dimensioni di un segmento temporaneo, vedere la sezione "Generazioni e segmenti temporanei" nell'articolo Principi fondamentali di Garbage Collection.

Restituisce

Boolean

true se il runtime è riuscito a eseguire il commit della quantità di memoria richiesta e il Garbage Collector può accedere alla modalità di eliminazione della latenza delle aree di Garbage Collection; in caso contrario, false.

Attributi

Eccezioni

totalSize supera le dimensioni del segmento temporaneo.

Il processo è già in modalità di eliminazione della latenza delle aree di Garbage Collection.

Commenti

Il TryStartNoGCRegion(Int64) metodo tenta di posizionare il Garbage Collector in nessuna modalità di latenza dell'area GC, che non consente l'operazione di Garbage Collection mentre un'app esegue un'area critica del codice. Se il runtime non è in grado di allocare inizialmente la quantità di memoria richiesta, Il Garbage Collector esegue un'operazione di Garbage Collection di blocco completa in un tentativo di liberare memoria aggiuntiva. Il Garbage Collector non entra in modalità di latenza dell'area GC se è in grado di allocare la quantità di memoria necessaria, che in questo caso è effettivamente di 2 * totalSize byte (tenta di allocare totalSize byte per l'heap di oggetti piccoli e totalSize byte per l'heap di oggetti di grandi dimensioni).

totalSize deve essere sufficientemente grande per gestire tutte le allocazioni di memoria che si verificano nel percorso critico. Sono incluse le allocazioni dall'app, nonché le allocazioni eseguite dal runtime per conto dell'app.

Importante

Non è possibile annidare le chiamate al TryStartNoGCRegion metodo e chiamare il EndNoGCRegion metodo solo se il runtime non è attualmente in modalità di latenza dell'area GC. In altre parole, non è consigliabile chiamare TryStartNoGCRegion più volte (dopo la prima chiamata al metodo, le chiamate successive non avranno esito positivo) e non è consigliabile che le chiamate EndNoGCRegion abbiano esito positivo solo perché la prima chiamata a TryStartNoGCRegion ha avuto esito positivo.

Per uscire dalla modalità di latenza dell'area GC, chiamare il EndNoGCRegion metodo .

Vedi anche

Si applica a