Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
L'API di analisi fornisce informazioni su vari eventi e azioni che si verificano in Common Language Runtime (CLR). Tali informazioni possono essere utilizzate per monitorare il funzionamento interno dei processi e analizzare le prestazioni dell'applicazione .NET Framework in uso.
Funzionalità supportate
L'API di analisi recupera le informazioni sulle azioni e sugli eventi che si verificano in CLR riportati di seguito:
Eventi di avvio e arresto di CLR.
Eventi di creazione e arresto di domini dell'applicazione.
Eventi di caricamento e scaricamento di assembly.
Eventi di caricamento e scaricamento di moduli.
Eventi di creazione e distruzione di vtable COM.
Eventi di compilazione JIT e di code pitching.
Eventi di caricamento e scaricamento di classi.
Eventi di creazione e distruzione di thread.
Eventi di entrata e uscita delle funzioni.
Eccezioni.
Transizioni tra l'esecuzione di codice gestito e non gestito.
Transizioni tra contesti di runtime diversi.
Informazioni sulle sospensioni del runtime.
Informazioni sull'heap della memoria del runtime e sull'attività di Garbage Collection.
L'API di analisi può essere chiamata da qualsiasi linguaggio compatibile con COM (non gestito).
Dal punto di vista del consumo di CPU e della memoria, l'API si rivela efficiente. L'analisi non comporta modifiche all'applicazione analizzata di importanza tale da provocare risultati fuorvianti.
L'API di analisi è utile sia per i profiler di campionamento, sia per i profiler non di campionamento. Un profiler di campionamento controlla l'analisi a cicli macchina regolari, vale a dire, a intervalli di 5 millisecondi. Un profiler non di campionamento riceve le informazioni su un evento in modo sincrono, insieme al thread che causa l'evento.
Funzionalità non supportata
L'API di analisi non supporta le funzionalità descritte di seguito:
Codice non gestito. L'API di analisi di CLR funziona solo per il codice gestito. È necessario utilizzare i meccanismi di Win32 convenzionali per analizzare il codice non gestito. Tuttavia, il profiler di CLR include eventi di transizione che consentono di determinare i limiti fra codice gestito e non gestito.
Applicazioni in grado di eseguire la modifica automatica del codice. L'API di analisi non supporta le applicazioni che modificano il codice per scopi quali la programmazione orientata agli aspetti.
Verifica dei limiti. L'API di analisi non fornisce le informazioni richieste per la verifica dei limiti. CLR fornisce il supporto intrinseco per la verifica dei limiti di tutto il codice gestito.
Analisi remota. Le interfacce del Code Profiler di CLR non supportano l'analisi remota per i motivi riportati di seguito:
L'analisi remota estende il tempo di esecuzione. Quando si utilizzano le interfacce del profiler, è necessario ridurre al minimo il tempo di esecuzione in modo da non influire eccessivamente sui risultati dell'analisi, soprattutto durante il monitoraggio delle prestazioni dell'esecuzione. Tuttavia, l'analisi remota non costituisce una limitazione quando le interfacce del profiler vengono utilizzate per monitorare l'utilizzo della memoria o per ottenere informazioni in fase di esecuzione sugli stack frame, sugli oggetti e così via.
Il Code Profiler di CLR deve registrare una o più interfacce di callback con il runtime sul computer locale su cui è in esecuzione l'applicazione analizzata. In tal modo la capacità di creare un Code Profiler remoto viene limitata.
Analisi negli ambienti di produzione con requisiti di disponibilità elevata. L'API di analisi è stata creata per supportare la diagnostica in fase di sviluppo. Non è stata sottoposta ai test accurati richiesto per supportare gli ambienti di produzione.