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