Condividi tramite


Procedura: connettere il profiler a un servizio nativo per raccogliere dati di concorrenza tramite la riga di comando

In questo argomento viene illustrato come utilizzare gli strumenti da riga di comando disponibili negli strumenti di profilatura Visual Studio per connettere il profiler a un servizio (C/C++) nativo e raccogliere dati di concorrenza di thread e processi tramite il metodo di campionamento.

[!NOTA]

Le funzioni di sicurezza avanzate di Windows 8 e Windows Server 2012 hanno richiesto modifiche significative riguardo alla modalità di raccolta dei dati su queste piattaforme da parte del profiler di Visual Studio.Le applicazioni Windows Store 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 il profiler a un prompt dei comandi, è 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.

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.

Connessione del profiler

Per connettere il profiler a un servizio nativo, utilizzare le opzioni VSPerfCmd/start e /attach per inizializzare il profiler e connetterlo all'applicazione di destinazione.È possibile specificare /start e /attach e le opzioni relative in un'unica riga di comando.È inoltre possibile aggiungere l'opzione /globaloff per sospendere la raccolta dei dati all'avvio dell'applicazione di destinazione.Utilizzare quindi /globalon per avviare la raccolta dei dati.

Per connettere il profiler a un servizio nativo

  1. Se il servizio non è in esecuzione, avviarlo.

  2. Avviare il profiler digitando quanto segue al prompt dei comandi:

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

    • L'opzione /output**:**OutputFile è obbligatoria con /start.OutputFile consente di specificare il nome e il percorso del file dei dati di profilo (vsp).

    È possibile utilizzare qualsiasi opzione nella tabella seguente con l'opzione /start .

    [!NOTA]

    La maggior parte dei servizi richiede le opzioni /user e /crosssession.

    Opzione

    Descrizione

    /user:[Domain\]UserName

    Specifica il dominio e il nome utente facoltativi dell'account per ottenere l'accesso al profiler.

    /crosssession

    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.

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

  3. Connettere il profiler al servizio digitando il comando seguente a un prompt dei comandi:

    **VSPerfCmd /attach:**PID

    PID specifica l'ID o il nome del processo dell'applicazione di destinazione.È possibile visualizzare gli ID processo di tutti i processi in esecuzione in Gestione attività di Windows.

Controllo della raccolta di dati

Quando l'applicazione di destinazione è in esecuzione, è possibile controllare la raccolta dei dati avviando e interrompendo la scrittura di 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 di opzioni nella tabella seguente 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 (PID) o da nome processo (ProcName)./detach interrompe la raccolta di dati per il processo specificato o per tutti i processi se non è specificato alcun processo.

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 servizio nativo di cui viene eseguito il profilo con il metodo di concorrenza interrompendo il servizio oppure richiamando l'opzione VSPerfCmd /detach.È quindi possibile richiamare l'opzione VSPerfCmd /shutdown per disattivare il profiler e chiudere il file dei dati di profilo.

Per terminare una sessione di profilo

  1. Disconnettere il profiler dall'applicazione di destinazione interrompendo il servizio o digitando il comando seguente a un prompt dei comandi:

    Digitare VSPerfCmd /detach

  2. Arrestare il profiler digitando il comando seguente a un prompt dei comandi:

    VSPerfCmd /shutdown