Condividi tramite


Procedura: instrumentare un servizio nativo e raccogliere dati di intervallo dettagliati 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 instrumentare un servizio (C/C++) nativo e raccogliere dati di intervallo dettagliati.

[!NOTA]

Non è possibile eseguire il profilo di un servizio con il metodo di strumentazione se il servizio non può essere riavviato dopo l'avvio del computer, ad esempio un servizio che viene avviato solo all'avvio del sistema operativo.

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 intervallo dettagliati da un servizio nativo tramite il metodo di strumentazione, utilizzare lo strumento VSInstr.exe per generare una versione instrumentata del componente.Sostituire quindi la versione non instrumentata del servizio con la versione instrumentata, accertandosi che il servizio sia configurato per l'avvio manuale.Avviare il profiler.

Quando viene avviato il servizio, i dati di intervallo 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, disattivare il servizio, quindi arrestare in modo esplicito il profiler.

Avvio dell'applicazione con il profiler

Per avviare il profilo di un servizio nativo

  1. Aprire una finestra del prompt dei comandi.

  2. Utilizzare lo strumento VSInstr per generare una versione instrumentata del file binario del servizio.

  3. Sostituire il binario originale con la versione instrumentata.In Gestione controllo servizi di Windows, assicurarsi che il tipo di avvio del servizio sia impostato su Manuale.

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

    /waitstart[:Interval]

    Specifica il numero di secondi di attesa prima che il profiler venga inizializzato prima che venga restituito un errore.Se Interval non è specificato, il profiler attenderà un periodo di tempo indefinito.Per impostazione predefinita, /start viene immediatamente restituito.

    /globaloff

    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.

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

  5. Avviare il servizio da Gestione controllo servizi.

Controllo della raccolta di dati

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

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

    /threadon:TID/threadoff:TID

    Avvia (/threadon) o interrompe (/threadoff) la raccolta dei dati per il thread specificato dall'ID thread (TID).

Fine della sessione di profilo

Per terminare una sessione di profilo, interrompere il servizio che esegue il componente instrumentato, quindi chiamare l'opzione VSPerfCmd/shutdown per disattivare il profiler e chiudere il file dei dati di profilo.

Per terminare una sessione di profilo

  1. Arrestare il servizio da Gestione controllo servizi.

  2. Arrestare il profiler.Tipo:

    VSPerfCmd /shutdown

  3. Sostituire il modulo instrumentato con l'originale.Se necessario, riconfigurare il tipo di avvio del servizio.

Vedere anche

Concetti

Profilatura dei servizi tramite riga di comando

Altre risorse

Visualizzazioni dei dati del metodo di strumentazione del profiler