Informazioni sui metodi di raccolta delle prestazioni del profiler

Questo documento descrive i metodi di raccolta dati usati dagli strumenti all'interno di Visual Studio Performance Profiler.

Campionamento

Il campionamento raccoglie dati statistici sul lavoro eseguito da un'applicazione durante la profilatura ed è un buon punto di partenza per trovare aree per velocizzare l'applicazione. A intervalli specificati, il metodo di campionamento raccoglie informazioni sulle funzioni in esecuzione nell'applicazione. La raccolta dei dati viene eseguita raccogliendo informazioni sull'applicazione a intervalli regolari o frequenza di campionamento, ad esempio ogni millisecondo. I dati raccolti vengono analizzati per creare un modello in cui è stato impiegato il tempo nell'applicazione. Se sono necessarie misurazioni accurate dei tempi di chiamata o si cercano problemi di prestazioni in un'applicazione per la prima volta, è consigliabile usare il campionamento.

Il campionamento ha una minore accuratezza nel numero di chiamate, ma è a basso costo per il profiler e ha poco effetto sull'esecuzione dell'applicazione sottoposta a profilatura. Gli strumenti nel Profiler prestazioni che usano il metodo di campionamento includono lo strumento Utilizzo CPU.

Al termine della raccolta dei dati, lo strumento Utilizzo CPU analizza i dati acquisiti e visualizza il report.

Tracciabilità

La traccia fornisce informazioni migliori sulla frequenza con cui è stato eseguito un metodo. Se sono necessarie misure accurate dei numeri di chiamata, usare la traccia. La traccia può avere un impatto maggiore sulle prestazioni del codice durante la raccolta, ma il campionamento ha solo un sovraccarico ridotto. Inoltre, la traccia può essere più lenta da analizzare perché la visualizzazione dei dati dopo la raccolta richiede più tempo.

Strumentazione

La profilatura della strumentazione raccoglie informazioni dettagliate sul lavoro eseguito da un'applicazione durante un'esecuzione della profilatura. La raccolta dei dati viene eseguita tramite strumenti che inserisce codice in un file binario che acquisisce informazioni di temporizzazione o tramite hook di callback per raccogliere e generare informazioni esatte sul conteggio delle chiamate e sui tempi durante l'esecuzione di un'applicazione. Il metodo di strumentazione presenta un sovraccarico elevato rispetto agli approcci basati sul campionamento. Gli strumenti nel Profiler prestazioni che usano la strumentazione includono gli strumenti di strumentazione e lo strumento di allocazione di oggetti .NET.

Campionamento e strumentazione

Il valore del campionamento è che ha meno sovraccarico e per questo motivo è più probabile che sia statisticamente rappresentativo dell'applicazione in esecuzione nell'ambiente di produzione. Il valore della profilatura della strumentazione è che è possibile ottenere conteggi delle chiamate esatte sul numero di chiamate chiamate che sono state chiamate alle funzioni. In questo modo vengono fornite informazioni molto più dettagliate del normale campionamento, che può distorcere il tempo impiegato in alcuni scenari. Ad esempio, le funzioni che non eseguono molte operazioni, ma vengono chiamate di frequente, vengono visualizzate più di quanto sarebbero in uno scenario reale.

Con la strumentazione, ogni chiamata di funzione selezionata nell'applicazione viene annotata e instrumentata in modo che quando viene richiamata viene aggiunta alla traccia insieme alle informazioni sul chiamante. Con il campionamento, lo stack di chiamate corrente in esecuzione viene sottoposto a polling dalla CPU a un intervallo e quindi ogni fotogramma viene aggiunto alla traccia.