Runtime Profiling (Profilatura di runtime)
Nota
Questo articolo è specifico per .NET Framework. Non si applica alle implementazioni più recenti di .NET, incluse .NET 6 e versioni successive.
La profilatura è un metodo di raccolta dei dati sulle prestazioni in qualsiasi scenario di sviluppo o distribuzione. Questa sezione è destinata agli sviluppatori e agli amministratori di sistema che vogliono raccogliere le informazioni sulle prestazioni delle applicazioni.
Rilevamento delle prestazioni con Performance Monitor (Perfmon.exe)
Monitor prestazioni è lo strumento più facile da usare per la profilatura dell'applicazione .NET Framework. Monitor prestazioni rappresenta graficamente i dati trovati nei contatori delle prestazioni di .NET Framework installati con Common Language Runtime e Windows SDK. Questi contatori possono essere usati per monitorare una serie di attività, dalla gestione della memoria alle prestazioni del compilatore JIT. Forniscono informazioni sulle risorse usate dall'applicazione, che indirettamente misurano le prestazioni dell'applicazione. Usare questi contatori per comprendere il funzionamento interno dell'applicazione.
Per eseguire Perfmon.exe in Windows Vista e versioni successive
Al prompt dei comandi digitare perfmon. Viene visualizzata la console di Performance Monitor .
Nella cartella Strumenti di monitoraggio fare clic su Performance Monitor.
Nella barra degli strumenti di Performance Monitor fare clic sull'icona Aggiungi (il segno di addizione), se presente. Se non è presente, fare clic con il pulsante destro del mouse nella finestra di monitoraggio e selezionare l'opzione Aggiungi contatori .
Viene aperta la finestra di dialogo Aggiungi contatori . La casella di riepilogo Contatori disponibili visualizza gli oggetti prestazione disponibili. Esistono diversi oggetti predefiniti per le applicazioni .NET Framework, inclusi quelli per la gestione della memoria (Memoria CLR .NET), per l'interoperabilità (Interoperabilità CLR .NET), per la gestione delle eccezioni (Eccezioni CLR .NET) e per il multithreading (LocksAndThreads CLR .NET). Ogni oggetto prestazione include diversi contatori delle prestazioni singoli. Per un elenco dei contatori delle prestazioni disponibili in Performance Monitor, vedere Performance Counters.
Selezionare la casella di controllo accanto al nome di un oggetto prestazione per visualizzare l'elenco dei singoli contatori delle prestazioni che supporta.
Fare clic sul contatore delle prestazioni da visualizzare:
Nella casella di riepilogo Istanze dell'oggetto selezionato fare clic su <Tutte le istanze> per specificare che si vuole monitorare il contatore delle prestazioni per Common Language Runtime globalmente, ovvero a livello di sistema.
oppure
Nella casella di riepilogo Istanze dell'oggetto selezionato fare clic su un nome dell'applicazione per monitorare il relativo contatore delle prestazioni.
Per differenziare più versioni di runtime o per evitare ambiguità tra più applicazioni con lo stesso nome, è necessario modificare anche una chiave del Registro di sistema. Per altre informazioni, vedere Performance Counters and In-Process Side-By-Side Applications.
Nota
Quando vengono installati nuovi contatori delle prestazioni mentre è in esecuzione la console prestazioni, arrestare e riavviare la console per rendere visibili i nuovi contatori.
Per profilare un assembly esistente in un'area o in una condivisione remota, assicurarsi che l'assembly remoto sia totalmente attendibile nel computer che esegue i contatori delle prestazioni. Se l'assembly non ha l'attendibilità totale, i contatori delle prestazioni non funzioneranno. Per informazioni sulla concessione dell'attendibilità alle diverse aree, vedere Caspol.exe (strumento per i criteri di sicurezza dall'accesso di codice).
Nota
Nei sistemi in cui è installato .NET Framework 4, Monitor prestazioni potrebbe non visualizzare i dati per i contatori delle prestazioni in alcune categorie, ad esempio Dati CLR .NET e Rete CLR .NET, per le applicazioni sviluppate con .NET Framework 1.1. In questo caso, è possibile configurare Monitor prestazioni per visualizzare questi dati aggiungendo l'elemento <forcePerformanceCounterUniqueSharedMemoryReads> al file di configurazione dell'applicazione.
Lettura e creazione di contatori delle prestazioni a livello di codice
.NET Framework fornisce le classi che è possibile usare per accedere a livello di codice alle stesse informazioni sulle prestazioni disponibili nella console prestazioni. È anche possibile usare queste classi per creare contatori delle prestazioni personalizzati. La tabella seguente descrive alcune classi di monitoraggio delle prestazioni disponibili in .NET Framework.
Classe | Descrizione |
---|---|
System.Diagnostics.PerformanceCounter | Rappresenta un componente del contatore delle prestazioni di Windows. Usare questa classe per leggere i contatori predefiniti o personalizzati esistenti e pubblicare i dati sulle prestazioni (scrittura) nei contatori personalizzati. |
System.Diagnostics.PerformanceCounterCategory | Fornisce diversi metodi per interagire con i contatori e le categorie di contatori del computer. |
System.Diagnostics.PerformanceCounterInstaller | Specifica un programma di installazione per il componente PerformanceCounter . |
System.Diagnostics.PerformanceCounterType | Specifica la formula per calcolare il metodo NextValue per PerformanceCounter . |