Condividi tramite


Procedura: connettere il profiler a un servizio .NET per raccogliere dati di memoria tramite la riga di comando

In questo argomento viene illustrato come utilizzare gli strumenti da riga di comando disponibili negli strumenti di profilatura di Visual Studio per connettere il profiler a un servizio .NET Framework e raccogliere dati sull'utilizzo della memoria.È possibile raccogliere dati sul numero e la dimensione delle allocazioni di memoria nonché sulla durata degli oggetti di memoria.

[!NOTA]

Le funzionalità di sicurezza avanzate in Windows 8 e Windows Server 2012 necessarie modifiche significative in modo che il profiler di Visual Studio consente di raccogliere dati su queste piattaforme.Le applicazioni di archivio di Windows richiedono nuove tecniche di raccolta.Vedere Profilatura delle applicazioni Windows 8 e Windows Server 2012.

[!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 dati di memoria da un servizio .NET Framework, utilizzare lo strumento VSPerfCLREnv.cmd per inizializzare le variabili di ambiente appropriate nel computer che ospita il servizio.È necessario riavviare il computer per configurarlo per il profilo.

Utilizzare quindi lo strumento VSPerfCmd per connettere il profiler al processo del servizio.Quando il profiler è connesso al servizio, è possibile sospendere e riprendere la raccolta dei dati.

Per terminare una sessione di profilo, è necessario che il profiler non sia più connesso al servizio e che venga arrestato in modo esplicito.Nella maggior parte dei casi, è consigliabile cancellare le variabili di ambiente di profilo alla fine di una sessione.

Connessione del profiler

Per connettere il profiler a un servizio .NET Framework

  1. Se necessario, installare il servizio.

  2. Aprire una finestra del prompt dei comandi.

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

    VSPerfClrEnv {/globalsamplegc /globalsamplegclife}[/samplelineoff]

    • Le opzioni /globalsamplegclife e /globalsamplegclife specificano il tipo di dati di memoria da raccogliere.Specificare una sola delle seguenti opzioni.
    • /globalsamplegc
      Abilita la raccolta dei dati sull'allocazione di memoria.

    • /globalsamplegclife
      Abilita la raccolta dei dati relativi sia all'allocazione della memoria che alla durata degli oggetti.

    • L'opzione /samplelineoff disabilita la raccolta dei dati del numero di riga del codice sorgente.
  4. Riavviare il computer per impostare la nuova configurazione dell'ambiente.

  5. Se necessario, avviare il servizio.

  6. Aprire una finestra del prompt dei comandi.Se necessario, aggiungere il percorso del profiler alla variabile di ambiente PATH.

  7. Avviare il profiler.Tipo:

    VSPerfCmd /start:sample /output**:**OutputFile[Options]

    • L'opzione /start:sample 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 una o più delle opzioni riportate di seguito con l'opzione /start:sample.

    [!NOTA]

    Le opzioni /user e /crosssession sono in genere obbligatorie per i servizi.

    Opzione

    Descrizione

    /user:[Domain\]UserName

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

    /crosssession

    Abilita il profilo dei processi in altre sessioni di accesso.Questa opzione è obbligatoria se l'applicazione ASP.NET è 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.

    /user:[Domain\]UserName

    Specifica il dominio e il nome utente facoltativi dell'account di accesso in cui viene eseguito il servizio.L'account di accesso è elencato nella colonna Accedi come del servizio in Gestione controllo servizi di Windows.

    /crosssession|cs

    Abilita il profilo dei processi in altre sessioni di accesso.

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

  8. Connettere il profiler al servizio.Tipo:

    VSPerfCmd /attach:{PID|ProcName} [/targetclr**:**Version]

    • Specificare l'ID o il nome del processo del servizio.È possibile visualizzare gli ID e i nomi di tutti i processi in esecuzione in Gestione attività di Windows.

    • **targetclr:**Version specifica la versione di Common Language Runtime (CLR) da profilare quando più di una versione del runtime è caricata in un'applicazione.Opzionale.

Controllo della raccolta di dati

Quando il servizio è in esecuzione, è possibile utilizzare le opzioni di VSPerfCmd.exe per interrompere e avviare la scrittura dei dati nel file di dati del profiler.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

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

    /attach:{PID|ProcName} /detach[:{PID|ProcName}]

    /attach avvia la raccolta di dati per il processo specificato da ID processo o da nome processo./detach interrompe la raccolta di dati per il processo specificato o per tutti i processi se non è specificato un processo particolare.

  • È 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, non deve essere in corso alcuna raccolta di dati.È possibile interrompere la raccolta dei dati da un'applicazione profilata con il metodo di campionamento interrompendo il servizio o chiamando l'opzione VSPerfCmd /detach.Si chiama quindi l'opzione VSPerfCmd /shutdown per disattivare il profiler e chiudere il file dei dati di profilo.Il comando VSPerfClrEnv /globaloff cancella le variabili di ambiente di profilo, ma la configurazione del sistema non viene reimpostata finché non viene riavviato il computer.

Per terminare una sessione di profilo

  1. Effettuare una delle operazioni seguenti per disconnettere il profiler dall'applicazione di destinazione:

    • Arrestare il servizio.

      In alternativa

    • Digitare VSPerfCmd /detach

  2. Arrestare il profiler.Tipo:

    VSPerfCmd /shutdown

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

    VSPerfClrEnv /globaloff

  4. Riavviare il computer.

Vedere anche

Concetti

Profilatura dei servizi tramite riga di comando

Altre risorse

Visualizzazioni dei dati di memoria .NET degli strumenti di profilatura