Condividi tramite


Procedura: instrumentare un'applicazione Web ASP.NET compilata dinamicamente e raccogliere dati di memoria tramite la riga di comando del profiler

In questo argomento viene illustrato come utilizzare gli strumenti da riga di comando disponibili negli strumenti di profilatura di Visual Studio per raccogliere dati dettagliati sull'allocazione di memoria e sulla durata degli oggetti .NET per un'applicazione Web ASP.NET compilata in modo dinamico tramite il metodo di strumentazione del 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 del 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 i dati di prestazioni da un'applicazione Web ASP.NET, modificare il file web.config dell'applicazione di destinazione per abilitare lo strumento VSInstr.exe per instrumentare i file dell'applicazione compilata in modo dinamico.Utilizzare quindi lo strumento VSPerfCLREnv.cmd per configurare il server che ospita l'applicazione Web ASP.NET e abilitare il profilo di memoria .NET impostando le variabili di ambiente appropriate, quindi riavviare il computer.

Per raccogliere dati, avviare il profiler, quindi eseguire l'applicazione di destinazione.Quando il profiler è connesso all'applicazione, è possibile sospendere e riprendere la raccolta dei dati. Dopo avere raccolto i dati appropriati, chiudere l'applicazione, chiudere il processo di lavoro di Internet Information Services (IIS), quindi arrestare il profiler.

Dopo avere completato l'attività di profilo, ripristinare gli stati originali del file web.config e del server Web.

Configurazione dell'applicazione Web ASP.NET e del server Web

Per configurare l'applicazione Web ASP.NET e il server Web

  1. Modificare il file web.config dell'applicazione di destinazione.Vedere Procedura: modificare file Web.Config per instrumentare e profilare applicazioni Web ASP.NET compilate dinamicamente.

  2. Aprire una finestra del prompt dei comandi nel computer che ospita l'applicazione Web.

  3. Inizializzare le variabili di ambiente di profilo.Tipo:

    VSPerfClrEnv /globaltracegc

    In alternativa

    VSPerfClrEnv /globaltracegclife

    • L'opzione /globaltracegc consente di abilitare la raccolta dei dati sull'allocazione di memoria.

    • L'opzione /globaltracegclife consente di abilitare la raccolta dei dati sull'allocazione di memoria e sulla durata degli oggetti.

  4. Riavviare il computer.

Esecuzione della sessione di profilo

Per eseguire il profilo dell'applicazione Web ASP.NET

  1. 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.

    [!NOTA]

    Le opzioni /user e /crosssession sono in genere obbligatorie per le applicazioni ASP.NET.

    Opzione

    Descrizione

    /user:[Domain\]UserName

    Specifica il dominio e il nome utente facoltativi dell'account proprietario del processo di lavoro ASP.NET.Questa opzione è obbligatoria se il processo è in esecuzione come un utente diverso dall'utente connesso.Il nome è elencato nella colonna Nome utente della scheda Processi di Gestione attività di Windows.

    /crosssession

    Abilita il profilo dei processi in altre sessioni.Questa opzione è obbligatoria se l'applicazione è in esecuzione in una sessione diversa.L'ID di sessione è elencato nella colonna ID sessione della scheda Processi di Gestione attività di Windows.È possibile specificare /CS come abbreviazione per /crosssession.

    /globaloff

    Avvia il profiler con la raccolta dei dati in pausa.Utilizzare /globalon per riprendere il profilo.

    /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 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.

    /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.

  2. Avviare l'applicazione Web ASP.NET nel modo usuale.

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 dei dati del profiler tramite 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 di opzioni seguenti 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

    /globalon /globaloff

    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 definita dall'utente facoltativa.I contrassegni possono essere utilizzati per filtrare i dati nelle visualizzazioni dati e nei rapporti del profiler.

Fine della sessione di profilo

Per terminare una sessione di profilo, chiudere l'applicazione Web ASP.NET di destinazione, arrestare Internet Information Services (IIS) per interrompere il processo profilato, quindi arrestare il profiler.Riavviare IIS.

Per terminare una sessione di profilo

  1. Chiudere l'applicazione Web ASP.NET.

  2. Chiudere il processo di lavoro ASP.NET reimpostando Internet Information Services (IIS).Tipo:

    IISReset /stop

  3. Arrestare il profiler.Tipo:

    VSPerfCmd/shutdown

  4. Riavviare IIS.Tipo:

    IISReset /start

Ripristino della configurazione dell'applicazione e del computer

Dopo avere completato l'attività di profilo, sostituire il file web.config, cancellare le variabili di ambiente di profilo e riavviare il computer per ripristinare gli stati originali del server e dell'applicazione ASP.NET.

Per ripristinare la configurazione dell'applicazione e del computer

  1. Sostituire il file web.config con una copia del file originale.

  2. (Facoltativo)Cancellare le variabili di ambiente di profilo.Tipo:

    VSPerfCmd /globaloff

  3. Riavviare il computer.

Vedere anche

Concetti

Profilatura tramite riga di comando di applicazioni Web ASP.NET

Altre risorse

Visualizzazioni dei dati di memoria .NET degli strumenti di profilatura