Condividi tramite


Contatori di prestazioni di memoria

La categoria Memoria CLR .NET della console Prestazioni include contatori che forniscono informazioni sul Garbage Collector. Nella tabella che segue vengono descritti tali contatori di prestazioni.

Contatore prestazioni

Oggetto di descrizione

Byte in tutti gli heap

Visualizza la somma dei contatori Dimensione heap della generazione 1, Dimensione heap della generazione 2, Dimensione heap oggetti grandi. Questo contatore indica la memoria, in byte, attualmente allocata sugli heap della Garbage Collection.

Handle GC

Visualizza il numero totale di handle di Garbage Collection in uso. Gli handle di Garbage Collection sono handle per risorse esterne a Common Language Runtime e all'ambiente gestito.

Raccolte della generazione 0

Visualizza il numero totale di volte in cui gli oggetti della generazione 0, cioè gli oggetti creati e allocati più di recente, sono stati raccolti nel Garbage Collector da quando è stata avviata l'applicazione.

La Garbage Collection della generazione 0 si verifica quando la memoria disponibile nella generazione 0 non è sufficiente a soddisfare una richiesta di allocazione. Questo contatore viene incrementato al termine di una Garbage Collection della generazione 0. Le Garbage Collection delle generazioni superiori includono tutti gli insiemi delle generazioni di livello inferiore. Questo contatore viene incrementato esplicitamente quando si verifica una Garbage Collection di una generazione di livello superiore (1 o 2).

Il contatore visualizza l'ultimo valore osservato. Il valore del contatore _Global_ non è preciso e deve essere ignorato.

Raccolte della generazione 1

Visualizza il numero di volte in cui gli oggetti della generazione 1 sono stati raccolti nel Garbage Collector da quando è stata avviata l'applicazione.

Il contatore viene incrementato al termine di una Garbage Collection della generazione 1. Le Garbage Collection delle generazioni superiori includono tutti gli insiemi delle generazioni di livello inferiore. Questo contatore viene incrementato esplicitamente quando si verifica una Garbage Collection di una generazione di livello superiore (generazione 2).

Il contatore visualizza l'ultimo valore osservato. Il valore del contatore _Global_ non è preciso e deve essere ignorato.

Raccolte della generazione 2

Visualizza il numero di volte in cui gli oggetti della generazione 2 sono stati raccolti nel Garbage Collector da quando è stata avviata l'applicazione. Il contatore viene incrementato al termine di una Garbage Collection della generazione 2 (definita anche Garbage Collection completa).

Il contatore visualizza l'ultimo valore osservato. Il valore del contatore _Global_ non è preciso e deve essere ignorato.

GC indotti

Visualizza il numero massimo di volte in cui è stato eseguito Garbage Collection a causa di una chiamata esplicita a GC.Collect. È buona norma lasciare che il Garbage Collector regoli la frequenza delle operazioni.

Oggetti bloccati

Visualizza il numero di oggetti bloccati rilevati nell'ultima Garbage Collection. Un oggetto bloccato è un oggetto che il Garbage Collector non può spostare nella memoria. Questo contatore tiene traccia degli oggetti bloccati solo negli heap raccolti nel Garbage Collector. Una Garbage Collection della generazione 0 provoca, ad esempio, l'enumerazione degli oggetti bloccati solo nell'heap della generazione 0.

Blocchi Sink in uso

Visualizza il numero corrente di blocchi di sincronizzazione in uso. I blocchi di sincronizzazione sono strutture di dati per oggetto allocate per l'archiviazione delle informazioni di sincronizzazione. I blocchi di sincronizzazione contengono riferimenti deboli a oggetti gestiti e devono essere sottoposti a scansione dal Garbage Collector. La funzione dei blocchi di sincronizzazione non è necessariamente limitata all'archiviazione di informazioni di sincronizzazione; i blocchi possono infatti memorizzare anche metadati di interoperabilità COM. Questo contatore indica i problemi di prestazioni dovuti all'uso eccessivo di primitive di sincronizzazione.

Totale byte di cui è stato eseguito il commit

Visualizza la quantità di memoria virtuale, in byte, attualmente vincolata dal Garbage Collector. La memoria vincolata rappresenta la memoria fisica per cui è stato riservato spazio nel file di paging su disco.

Totale byte riservati

Visualizza la quantità di memoria rimasta. in byte, attualmente raccolti da Garbage Collector. La memoria riservata è rappresentata dallo spazio di memoria virtuale riservato all'applicazione senza utilizzare il disco o pagine della memoria principale.

Percentuale tempo in GC

Visualizza la percentuale di tempo trascorso per l'esecuzione di una Garbage Collection dall'ultimo ciclo di Garbage Collection. Questo contatore indica, in genere, il lavoro effettuato dal Garbage Collector per raccogliere e comprimere la memoria per conto dell'applicazione. Il contatore viene aggiornato solo al termine di ogni Garbage Collection. Il contatore non rappresenta una media; il suo valore riproduce l'ultimo valore osservato.

Byte allocati/sec

Visualizza il numero di byte al secondo allocati sull'heap della Garbage Collection. Il contatore viene aggiornato al termine di ogni Garbage Collection e non ad ogni allocazione. Questo contatore non rappresenta una media del tempo, ma visualizza la differenza tra i valori osservati per gli ultimi due campioni divisa per la durata dell'intervallo dei campioni.

Finalization Survivors

Visualizza il numero di oggetti raccolti nel Garbage Collector non eliminati in seguito alla Garbage Collection, perché in attesa di essere completati. Se questi oggetti contengono riferimenti ad altri oggetti, anche questi ultimi non vengono eliminati, ma non vengono conteggiati dal contatore. I contatori Memoria di completamento alzata di livello dalla generazione 0 e Memoria di completamento alzata di livello dalla generazione 1 rappresentano tutta la memoria non svuotata in seguito al completamento.

Questo contatore non è cumulativo; viene aggiornato al termine di ogni Garbage Collection con il conteggio degli oggetti non eliminati durante tale operazione. Il contatore indica l'overhead aggiuntivo in cui potrebbe incorrere l'applicazione a causa del completamento.

Dimensione heap della generazione 0

Visualizza il numero massimo di byte che è possibile allocare nella generazione 0; non indica il numero corrente di byte allocati.

Una Garbage Collection della generazione 0 si verifica quando le allocazioni eseguite dall'ultima Garbage Collection superano questa dimensione. La dimensione della generazione 0 viene regolata dal Garbage Collector e può cambiare durante l'esecuzione dell'applicazione. Al termine di una raccolta della generazione 0 la dimensione dell'heap della generazione 0 è di 0 byte. Questo contatore visualizza la dimensione, in byte, delle allocazioni che richiamano la successiva Garbage Collection della generazione 0.

Il contatore viene aggiornato al termine di una Garbage Collection e non ad ogni allocazione.

Byte della generazione 0 elevati di livello/sec

Visualizza il numero di byte promossi dalla generazione 0 alla generazione 1. La memoria viene promossa quando sopravvive a una Garbage Collection. Questo contatore è un indicatore degli oggetti con durata relativamente estesa creati al secondo.

Il contatore visualizza la differenza tra i valori osservati negli ultimi due campioni divisa per la durata dell'intervallo dei campioni.

Dimensione heap della generazione 1

Visualizza il numero corrente di byte nella generazione 1; non visualizza la dimensione massima della generazione 1. Gli oggetti non vengono direttamente allocati in questa generazione bensì elevati di livello dalla precedente generazione 0 di Garbage Collection. Il contatore viene aggiornato al termine di una Garbage Collection e non ad ogni allocazione.

Byte della generazione 1 elevati di livello/sec

Visualizza il numero di byte promossi dalla generazione 1 alla generazione 2. Gli oggetti promossi solo perché stanno attendendo di essere completati non sono inclusi in questo contatore.

La memoria viene promossa quando sopravvive a una Garbage Collection. Dalla generazione 2 non viene promosso alcun elemento, dal momento che si tratta della generazione meno recente. Questo contatore è un indicatore degli oggetti con durata molto estesa creati al secondo.

Il contatore visualizza la differenza tra i valori osservati negli ultimi due campioni divisa per la durata dell'intervallo dei campioni.

Dimensione heap della generazione 2

Visualizza il numero corrente di byte nella generazione 2. Gli oggetti non vengono direttamente allocati in questa generazione, bensì elevati di livello dalla generazione 1 durante i precedenti processi di Garbage Collection della generazione 1. Il contatore viene aggiornato al termine di una Garbage Collection e non ad ogni allocazione.

Dimensione heap oggetti grandi

Visualizza la dimensione corrente, in byte, dell'heap degli oggetti di grandi dimensioni. Gli oggetti che superano i 20 KB sono considerati oggetti di grandi dimensioni dal Garbage Collector e vengono allocati direttamente in un heap speciale; non vengono elevati di livello durante le diverse generazioni. Il contatore viene aggiornato al termine di una Garbage Collection e non ad ogni allocazione.

Memoria di completamento promossa dalla generazione 0

Visualizza i byte di memoria elevati di livello dalla generazione 0 alla generazione 1 solo perché in attesa di essere completati. Questo contatore non è cumulativo; visualizza il valore osservato al termine dell'ultima Garbage Collection.

Memoria di completamento promossa dalla generazione 1

Visualizza i byte di memoria elevati di livello dalla generazione 1 alla generazione 2 solo perché in attesa di essere completati. Questo contatore non è cumulativo; visualizza il valore osservato al termine dell'ultima Garbage Collection. Questo contatore viene reimpostato su 0 se l'ultima Garbage Collection era solo una raccolta della generazione 0.

Memoria promossa dalla generazione 0

Visualizza i byte di memoria non svuotati in seguito al processo di Garbage Collection, promossi dalla generazione 0 alla generazione 1. Gli oggetti promossi solo perché stanno attendendo di essere completati non sono inclusi in questo contatore. Questo contatore non è cumulativo; visualizza il valore osservato al termine dell'ultima Garbage Collection.

Memoria promossa dalla generazione 1

Visualizza i byte di memoria non svuotati in seguito al processo di Garbage Collection, promossi dalla generazione 1 alla generazione 2. Gli oggetti promossi solo perché stanno attendendo di essere completati non sono inclusi in questo contatore. Questo contatore non è cumulativo; visualizza il valore osservato al termine dell'ultima Garbage Collection. Questo contatore viene reimpostato su 0 se l'ultima Garbage Collection era solo una raccolta della generazione 0.

Vedere anche

Riferimenti

Profilatura runtime

Concetti

Gestione automatica della memoria

Altre risorse

Contatori di prestazioni in .NET Framework