Condividi tramite


Contatori CPU e Windows

Aggiornamento: novembre 2007

Il profiler di Visual Studio 2008 consente di raccogliere i dati relativi alle prestazioni generati dal sistema operativo (contatori Windows) e dall'unità del processore (contatori CPU). È anche possibile selezionare un contatore CPU come evento utilizzato per generare intervalli di campionamento per le analisi con campioni.

Contatori Windows

I contatori Windows fanno parte dell'infrastruttura diagnostica di Windows che fornisce le informazioni sulle prestazioni del sistema operativo o di una applicazione, un servizio o un driver. I contatori Windows variano in base alla configurazione del computer in uso e potrebbero non essere disponibili in altri computer.

Contatori della CPU

I contatori CPU costituiscono una funzionalità della CPU del computer e memorizzano il numero di eventi correlati all'hardware. Il profiler di Visual Studio 2008 consente di utilizzare questo numero di eventi come intervallo di campionamento o raccogliere il numero di eventi quando si esegue l'analisi utilizzando la strumentazione.

I contatori delle prestazioni sono specifici della CPU. Le impostazioni di configurazione di una CPU per attivare uno stesso contatore delle prestazioni possono variare significativamente in base al modello e alla versione di CPU. Gli eventi portabili del profiler di Visual Studio 2008 scollegano alcuni contatori comuni delle prestazioni da processori specifici e consentono di raccogliere o campionare eventi di prestazioni generici.

Se durante l'analisi è necessario tenere il conteggio di un particolare evento, ad esempio i tentativi di accesso non riusciti alla cache L2, è possibile compilare una sessione di prestazioni relativa all'origine dell'evento. Questa operazione può essere eseguita su qualsiasi CPU dotata di cache L2. La sessione di prestazioni può essere trasportata su diverse piattaforme senza bisogno di modifiche.

Eventi particolari di piattaforme specifiche sono comunque supportati dal profiler di Visual Studio 2008. Ad esempio, uno sviluppatore su una piattaforma Pentium 4 potrebbe voler contare gli eventi specifici relativi all'architettura NetBurst. Questo evento non è portabile, ma è disponibile per lo sviluppatore per una sessione di prestazioni specifica su una determinata piattaforma.

Eventi portabili e piattaforma

Gli eventi portabili costituiscono un gruppo di contatori che non sono specifici di una CPU. Tutti gli altri contatori vengono chiamati eventi piattaforma e possono non essere supportati in varie piattaforme.

I contatori per gli eventi portabili e piattaforma sono definiti nei file XML dove vengono forniti specifici valori relativi ai contatori. Esistono più file per le diverse CPU perché i dati per i processori AMD e INTEL, ad esempio, sono diversi. Queste informazioni vengono utilizzate dal profiler di Visual Studio 2008 per offrire i contatori appropriati, portabili e di piattaforma, per la misurazione delle prestazioni.

Eventi portabili

Gli eventi portabili contengono i seguenti eventi:

Eventi generali

Nome evento

Descrizione evento

Istruzioni ritirate

Indica il numero di istruzioni che sono state eseguite completamente.

Cicli non interrotti

Indica solo i cicli nei quali il processore non è stato interrotto, ad esempio in attesa di I/O.

Eventi front end

Nome evento

Descrizione evento

Mancati riscontri ITLB

Indica il numero di ricerche ITLB (Instruction Translation Look-aside Buffer) che hanno prodotto un mancato riscontro.

Eventi diramazione

Nome evento

Descrizione evento

Diramazioni ritirate

Indica il numero di istruzioni di diramazione che sono state eseguite completamente.

Diramazioni stimate in modo non corretto

Indica le diramazioni stimate in modo non corretto a causa della previsione di un percorso errato da parte del processore. Le diramazioni stimate in modo non corretto incidono sulle prestazioni perché il processore deve ignorare tutte le operazioni effettuate e iniziare nuovamente l'elaborazione utilizzando un percorso corretto.

Eventi memoria:

Nome evento

Descrizione evento

Richieste non soddisfatte lettura cache L2

Indica il numero di richieste non soddisfatte di lettura della cache di secondo livello.

Riferimenti lettura cache L2

Indica il numero di riferimenti di lettura della cache di secondo livello. Include le richieste di caricamento e le richieste RFO (Read For Ownership) non soddisfatte e i riscontri.

Eventi Pentium IV

Tra gli eventi Pentium IV sono inclusi gli eventi seguenti:

Eventi memoria:

Nome evento

Descrizione evento

Conflitti di alias 64 KB

Indica il numero di conflitti di alias 64 KB. I conflitti di questo tipo si verificano quando un indirizzo di memoria virtuale fa riferimento a una riga della cache che si trova a 64 KB di distanza da un'altra riga della cache già residente nella cache L1.

Mancati riscontri DTLB percorso pagina

Indica il numero di richieste per un percorso pagina a causa di un mancato riscontro DTLB (Data Translation Look-aside Buffer). Un mancato riscontro DTLB di percorso pagina causa un errore di pagina in modo che il sistema operativo possa caricare la pagina richiesta nelle tabelle.

Richieste non soddisfatte lettura cache L3

Indica il numero di richieste non soddisfatte di lettura della cache di terzo livello. Include le richieste non soddisfatte a causa di caricamento e RFO (Read For Ownership).

Riferimenti lettura cache L3

Indica il numero di riferimenti di lettura della cache di terzo livello. Include le richieste di caricamento e le richieste RFO (Read For Ownership) non soddisfatte e i riscontri.

Tutte le riproduzioni di caricamento MOB

Indica il numero di istruzioni di caricamento in cui si sono verificate riproduzioni MOB (Memory Order Buffer) a causa della mancata osservanza delle limitazioni di inoltro store-to-load.

Caricamento/archiviazione punti di divisione completato

Indica il numero di suddivisioni di caricamento e archiviazione. Le suddivisioni di dati influiscono negativamente sulle prestazioni poiché impongono al processore di leggere/scrivere due righe di cache separatamente, quindi di incollare di nuovo le due parti di dati.

Eventi front end:

Nome evento

Descrizione evento

Mancati riscontri ITLB percorso pagina

Indica il numero di richieste di percorso pagina dovute a mancati riscontri ITLB.

Riferimenti ITLB

Indica l'accesso alla cache ITLB (Instruction Translation Look-aside Buffer).

Eventi diramazione:

Nome evento

Descrizione evento

Richieste non soddisfatte per la ricerca nella cache di analisi

Indica i ritardi che si sono verificati per decodificare le istruzioni e compilare un'analisi a causa di ricerche non soddisfatte dalla cache di analisi.

Unità virgola mobile:

Nome evento

Descrizione evento

Micro operazioni ritirate MMX 64 bit

Indica il numero di micro operazioni MMX 64 bit ritirate. Un'istruzione assembly può essere suddivisa in una o più micro operazioni.

Micro operazioni SIMD x87 ritirate

Indica il numero di micro operazioni SIMD (Single Instruction Multiple Data) X87 ritirate. Un'istruzione assembly può essere suddivisa in una o più micro operazioni.

Micro operazioni in virgola mobile X87 ritirate

Indica il numero di micro operazioni a virgola mobile X87 ritirate. Un'istruzione assembly può essere suddivisa in una o più micro operazioni.

Micro operazioni con precisione singola compressa ritirate

Indica il numero di micro operazioni con precisione singola compressa ritirate. Per decomprimere i dati sono necessarie istruzioni aggiuntive.

Micro operazioni con precisione singola scalare ritirate

Indica il numero di micro operazioni con precisione singola scalare ritirate.

Micro operazioni con precisione doppia compressa ritirate

Indica il numero di micro operazioni con precisione doppia compressa ritirate. Per decomprimere i dati sono necessarie istruzioni aggiuntive.

Micro operazioni con precisione doppia scalare ritirate

Indica il numero di micro operazioni con precisione doppia scalare ritirate.

Micro operazioni ritirate MMX 128 bit

Indica il numero di micro operazioni MMX a 128 bit ritirate. Un'istruzione assembly può essere suddivisa in una o più micro operazioni.

Supporti input SSE

Indica il numero di supporti necessari per gestire una condizione di eccezione per le operazioni a virgola mobile SSE/SSE2.

Visualizzazione dei contatori disponibili

Interfaccia utente di Visual Studio

Per visualizzare l'elenco di tutti i contatori di prestazioni CPU supportati nella piattaforma corrente, aprire le pagine delle proprietà Sessione prestazioni ed effettuare una delle operazioni seguenti:

  • Selezionare Campionamento, quindi Contatore di prestazioni dall'elenco Evento di esempio.

    - oppure -

  • Selezionare Contatori CPU, quindi Raccogli contatori CPU.

Per visualizzare l'elenco dei contatori di prestazioni Windows supportati nella piattaforma corrente, aprire la pagina delle proprietà Sessione prestazioni, quindi selezionare Contatori Windows.

Riga di comando

Utilizzare l'opzione /querycounters di VSPerfCmd.exe per stampare l'elenco di tutti i contatori di prestazioni CPU supportati nella piattaforma corrente.

Vedere anche

Attività

Procedura: scegliere eventi di campionamento

Procedura: raccogliere i dati dei contatori CPU

Procedura: raccogliere i dati dei contatori Windows

Altre risorse

Cenni preliminari (strumenti di analisi)