Procedura: instrumentare un componente autonomo .NET Framework e raccogliere dati di memoria con il profiler tramite la riga di comando
In questo argomento viene descritto come utilizzare gli strumenti da riga di comando disponibili negli strumenti di profilatura di Visual Studio per instrumentare un componente .NET Framework di un'applicazione autonoma, ad esempio un file con estensione exe o dll e raccogliere informazioni sulla memoria tramite il profiler.
[!NOTA]
Gli strumenti da riga di comando degli strumenti di profilatura sono contenuti nella sottodirectory \Team Tools\Performance Tools della directory di installazione di Visual Studio.Nei computer a 64 bit gli strumenti sono disponibili nelle versioni a 32 e 64 bit.Per utilizzare gli strumenti da riga di comando del profiler, è necessario aggiungere il percorso degli strumenti alla variabile di ambiente PATH della finestra Prompt dei comandi oppure aggiungerlo al comando stesso.Per ulteriori informazioni, vedere Specifica del percorso degli strumenti da riga di comando degli strumenti di profilatura.
Per raccogliere dati di memoria da un componente .NET Framework tramite il metodo di strumentazione, utilizzare lo strumento VSInstr.exe per generare una versione instrumentata del componente e lo strumento VSPerfCLREnv.cmd per inizializzare le variabili di ambiente di profilo.Quindi avviare il profiler tramite lo strumento VSPerfCmd.exe.
Quando viene eseguito il componente instrumentato, i dati di memoria vengono raccolti automaticamente in un file di dati.È possibile sospendere e riprendere la raccolta dei dati durante la sessione di profilo.
Per terminare una sessione di profilo, chiudere l'applicazione di destinazione e arrestare in modo esplicito il profiler.Nella maggior parte dei casi, è consigliabile cancellare le variabili di ambiente di profilo alla fine di una sessione.
Avvio dell'applicazione con il profiler
Per connettere il profiler a un'applicazione .NET Framework in esecuzione
Aprire una finestra del prompt dei comandi.
Utilizzare lo strumento VSInstr per generare una versione instrumentata dell'applicazione di destinazione.
Inizializzare le variabili di ambiente di profilo di .NET Framework.Tipo:
VSPerfClrEnv {/tracegc | /tracegclife}
Le opzioni /tracegc e /tracegclife consentono di inizializzare le variabili di ambiente per raccogliere unicamente i dati sull'allocazione della memoria oppure i dati sull'allocazione della memoria e sulla durata degli oggetti.
Opzione
Descrizione
/tracegc
Abilita solo la raccolta dei dati sull'allocazione di memoria.
/tracegclife
Abilita la raccolta dei dati relativi sia all'allocazione di memoria che alla durata degli oggetti.
Avviare il profiler.Tipo:
**VSPerfCmd /start:trace /output:**OutputFile [Options]
L'opzione /start:trace consente di inizializzare il profiler.
L'opzione /output**:**OutputFile è obbligatoria con /start.OutputFile specifica il nome e il percorso del file dei dati di profilo (vsp).
È possibile utilizzare qualsiasi opzione riportata di seguito con l'opzione /start:trace.
Opzione
Descrizione
/user:[Domain\]UserName
Specifica il dominio e il nome utente dell'account proprietario del processo profilato.Questa opzione è obbligatoria solo se il processo è in esecuzione come utente diverso dall'utente connesso.Il proprietario del processo è elencato nella colonna Nome utente della scheda Processi di Gestione attività di Windows.
Abilita il profilo dei processi in altre sessioni.Questa opzione è obbligatoria se l'applicazione è in esecuzione in una sessione diversa.L'identificatore di sessione è elencato nella colonna ID sessione della scheda Processi di Gestione attività di Windows.È possibile specificare /CS come abbreviazione per /crosssession.
Per avviare il profiler con la raccolta dei dati in pausa, aggiungere l'opzione /globaloff alla riga di comando /start.Utilizzare /globalon per riprendere il profilo.
/wincounter:WinCounterPath
Specifica un contatore delle prestazioni Windows di cui raccogliere i dati durante il profilo.
/automark:Interval
Utilizzare unicamente con /wincounter.Specifica il numero di millisecondi tra gli eventi di raccolta dati del contatore delle prestazioni Windows.Il valore predefinito è 500 ms.
/counter:Config
Raccoglie informazioni dal contatore delle prestazioni del processore specificato in Config.Le informazioni del contatore vengono aggiunte ai dati raccolti a ogni evento di profilatura.
events:Config
Specifica un evento Traccia eventi per Windows (ETW) di cui raccogliere i dati durante il profilo.Gli eventi ETW vengono raccolti in un file separato con estensione etl.
Avviare l'applicazione di destinazione dalla finestra del prompt dei comandi.
Controllo della raccolta di dati
Quando l'applicazione di destinazione è in esecuzione, è possibile controllare la raccolta dei dati avviando e interrompendo la scrittura dei dati nel file utilizzando le opzioni di VSPerfCmd.exe.Controllando la raccolta dei dati, è possibile raccogliere dati per una parte specifica dell'esecuzione del programma, ad esempio l'avvio o l'arresto dell'applicazione.
Per avviare e interrompere la raccolta dei dati
Le coppie seguenti di opzioni di VSPerfCmd avviano e interrompono la raccolta dei dati.Specificare ogni opzione in una riga di comando separata.È possibile attivare e disattivare più volte la raccolta dei dati.
Opzione
Descrizione
Avvia (/globalon) o interrompe (/globaloff) la raccolta dei dati per tutti i processi.
/processon:PID/processoff:PID
Avvia (/processon) o interrompe (/processoff) la raccolta dei dati per il processo specificato dall'ID processo (PID).
/threadon:TID/threadoff:TID
Avvia (/threadon) o interrompe (/threadoff) la raccolta dei dati per il thread specificato dall'ID thread (TID).
È inoltre possibile utilizzare l'opzione VSPerfCmd.exe/mark per inserire un contrassegno di profilo nel file di dati.Il comando /mark aggiunge un identificatore, un timestamp e una stringa di testo facoltativa definita dall'utente.I contrassegni possono essere utilizzati per filtrare i dati.
Fine della sessione di profilo
Per terminare una sessione di profilatura, chiudere l'applicazione che esegue il componente instrumentato, quindi chiamare l'opzione VSPerfCmd /shutdown per disattivare il profiler e chiudere il file di dati di profilatura.Il comando VSPerfClrEnv /off cancella le variabili di ambiente di profilo.
Per terminare una sessione di profilo
Chiudere l'applicazione di destinazione.
Arrestare il profiler.Tipo:
VSPerfCmd /shutdown
(Facoltativo) Cancellare le variabili di ambiente di profilo.Tipo:
VSPerfCmd /off
Vedere anche
Concetti
Profilatura della riga di comando di applicazioni autonome
Altre risorse
Visualizzazioni dei dati di memoria .NET degli strumenti di profilatura