Visualizzazione Utilizzo
La visualizzazione Utilizzo contiene informazioni relative a CPU, GPU e altre risorse di sistema usate dal processo corrente (scegliere Analizza>Visualizzatore di concorrenza per avviare il visualizzatore di concorrenza). Viene indicato l'utilizzo medio dei core da parte del processo analizzato, del processo inattivo, del processo di sistema e di altri processi in esecuzione nel sistema nel tempo. Non viene indicato quale core specifico è attivo in un momento determinato. Ad esempio, se due core sono in esecuzione al 50% per un determinato periodo di tempo, il grafico indica che viene usato un solo core logico. La visualizzazione viene generata dividendo il tempo di profilatura in brevi segmenti di tempo. Per ogni segmento, nel grafico viene rappresentato il numero medio di thread di processo in esecuzione nei core logici durante l'intervallo.
Il grafico mostra il tempo (sull'asse x) e la media dei core logici usati dal processo di destinazione, dal processo inattivo e dal processo di sistema. Il processo inattiva mostra i core inattive. Il processo di sistema è un processo in Windows che può eseguire operazioni per conto di altri processi. I processi rimanenti in esecuzione nell'account di sistema per l'utilizzo di eventuali core rimanenti.
Sull'asse y viene indicato il numero di core logici. Windows considera il supporto multithread simultaneo nell'hardware come core logici (ad esempio, Hyper-Threading). Di conseguenza, un sistema dotato di un processore quad core che supporta due thread hardware per ogni core viene visualizzato come un sistema con otto core logici. Questo vale anche per la visualizzazione Core. Per altre informazioni, vedere Visualizzazione Core.
Il grafico Attività GPU mostra il numero di motori di DirectX in uso nel tempo. Un motore è in uso se sta elaborando un pacchetto DMA. Il grafico non mostra lo specifico motore di DirectX (ad esempio, motore 3D, motore video e altri).
Scopo
È consigliabile usare la visualizzazione Utilizzo come punto di partenza per le analisi delle prestazioni quando si usa il visualizzatore di concorrenza. Poiché fornisce una panoramica del livello di concorrenza in un'app nel tempo, è possibile usare questa visualizzazione per identificare rapidamente le aree che richiedono l'ottimizzazione o la parallelizzazione delle prestazioni.
Se è interessati all'ottimizzazione delle prestazioni, può essere utile tentare di identificare i comportamenti che non soddisfano le aspettative. È possibile verificare se sono presenti aree con un utilizzo ridotto dei core logici della CPU e identificare la causa del problema. È anche possibile tentare di individuare schemi di utilizzo tra la CPU e la GPU.
Se si è interessati alla parallelizzazione di un'app, è possibile cercare le aree di esecuzione associate alla CPU o quelle in cui la CPU non viene usata.
Le aree associate alla CPU sono di colore verde. Se l'applicazione è seriale, il grafico mostra l'utilizzo di un solo core.
Le aree in cui la CPU non viene usata sono visualizzate in grigio. Queste aree potrebbero rappresentare punti in cui l'app è inattiva o esegue attività di I/O di blocco che offrono opportunità di parallelismo attraverso la sovrapposizione con altre operazioni associate alla CPU.
Quando si individua un comportamento di proprio interesse, è possibile ingrandire l'area selezionandola. Dopo avere eseguito lo zoom, è possibile passare alla visualizzazione Thread o alla visualizzazione Core per un'analisi più dettagliata.
Se si usa la GPU con C++ AMP o DirectX, potrebbe essere utile identificare il numero di motori GPU in uso o le aree di inattività imprevista della GPU.
Zoom
Per ingrandire il grafico Utilizzo CPU o il grafico Attività GPU, selezionare una sezione o usare il dispositivo di scorrimento dello zoom sopra il grafico. L'impostazione dello zoom viene mantenuta quando si passa ad altre visualizzazioni. Per eseguire lo zoom indietro, usare il dispositivo di scorrimento dello zoom. È possibile eseguire lo zoom anche usando CTRL+rotellina del mouse.
Grafico di utilizzo della CPU
Il grafico di utilizzo della CPU visualizza il livello di utilizzo in un'app nel tempo. L'asse X rappresenta la durata della traccia e l'asse Y rappresenta il numero di core logici nel sistema. Il grafico non indica quale core specifico è attivo in un momento determinato. Ad esempio, se due core sono in esecuzione al 50% per un determinato periodo di tempo, il grafico indica che viene usato un solo core logico.
Colori del grafico di utilizzo della CPU
Il colore verde indica l'utilizzo dei core logici del sistema da parte del processo corrente.
Il colore grigio chiaro indica l'utilizzo dei core logici da parte di altri processi nel sistema. Una percentuale elevata di grigio chiaro nel grafico della CPU indica che il sistema viene caricato pesantemente da altri processi e che è probabile che il processo venga superato da essi. Per ridurre l'uso dei core logici da parte di altri processi, ridurre il numero di tali processi eseguiti nel sistema.
Il colore grigio scuro indica il consumo di core logici da parte del processo di sistema. Non è possibile controllare direttamente questa attività, ma è utile essere al corrente di questi eventi perché possono incidere sulla disponibilità di core logici per il processo.
Il colore bianco indica la disponibilità di core logici non usati nel sistema. Tali core sono disponibili per il processo se è possibile trovare altre opportunità di parallelismo.
Utilizzo CPU medio
Viene visualizzato l'utilizzo medio dei core logici del sistema da parte del processo profilato per la durata del processo. Nel grafico non viene indicato quale core specifico è attivo in un determinato momento. Ad esempio, se due core sono ognuno in esecuzione al 50% della capacità per un periodo di tempo specificato, in questa visualizzazione verrà indicato l'utilizzo di un solo core logico.
Controllo zoom (visualizzazione Utilizzo)
Il controllo zoom consente di ingrandire il grafico Utilizzo CPU, in modo da potersi concentrare sulle aree di particolare interesse. Questo controllo esegue uno zoom avanti al centro della visualizzazione. È pertanto consigliabile centrare l'area di interesse prima di procedere.
È possibile trascinare il puntatore del mouse nel grafico Utilizzo CPU o nel grafico Attività GPU per creare un'area evidenziata. Quando si rilascia il pulsante del mouse, la visualizzazione viene ingrandita sull'intervallo selezionato.
Grafico Attività GPU
Il grafico Attività GPU nel visualizzatore di concorrenza visualizza il livello di attività di DirectX nel sistema, misurato in base al numero dei motori di DirectX usati nel tempo. Il grafico non mostra gli specifici motori usati. Un motore viene considerato in uso se sta elaborando una qualsiasi operazione GPU.
Colori del grafico Attività GPU
Il verde indica l'uso dei motori di DirectX da parte del processo corrente.
Il grigio chiaro indica l'uso dei motori di DirectX da parte di altri processi nel sistema. Per ridurre l'uso dei motori di DirectX da parte di altri processi, ridurre il numero di altri processi in esecuzione nel sistema.
Il bianco indica la disponibilità dei motori inutilizzati di DirectX nel sistema. Tali motori sono disponibili per il processo se è possibile trovare ulteriori opportunità per sfruttarli. Alcuni motori possono essere usati solo per tipi specifici di attività.
Attività GPU (paging)
I segmenti Attività GPU (paging) nella scheda Thread rappresentano i casi in cui la GPU stava eseguendo l'elaborazione delle richieste di paging. La lunghezza di un segmento rappresenta l'intervallo di tempo per cui la GPU ha elaborato un pacchetto di paging di accesso diretto alla memoria (DMA). In genere, i pacchetti di paging vengono associati al trasferimento di memoria tra la CPU e la GPU.
Quando si seleziona un segmento di paging GPU, il rapporto nella scheda Corrente visualizza le informazioni sul pacchetto DMA che è stato elaborato. Ciò include la quantità di tempo per cui è rimasto in attesa nella coda hardware associata al motore di DirectX, il processo che ha inviato il pacchetto DMA e il tempo richiesto per elaborare il pacchetto.
Attività GPU (questo processo)
I segmenti Attività GPU (questo processo) nella visualizzazione Thread nel visualizzatore di concorrenza rappresentano i casi in cui la GPU stava eseguendo l'elaborazione delle richieste per conto del processo corrente. Queste richieste vengono inviate alla GPU come pacchetti di accesso diretto alla memoria (DMA). La lunghezza di un segmento rappresenta l'intervallo di tempo per cui la GPU ha elaborato un pacchetto DMA per conto del processo corrente.
Quando si seleziona il segmento di attività GPU, il rapporto nella scheda Corrente visualizza le informazioni sul pacchetto DMA che è stato elaborato. Queste informazioni includono la quantità di tempo per cui il pacchetto è rimasto in attesa nella coda hardware associata al motore di DirectX, il processo che ha inviato il pacchetto e il tempo richiesto per elaborare il pacchetto. Un processo diverso dal processo corrente può avere inviato fisicamente il pacchetto DMA alla GPU. Il visualizzatore di concorrenza è in grado di rilevare quando un altro processo ha inviato operazioni alla GPU per conto del processo corrente.
Attività GPU (altri processi)
I segmenti Attività GPU (altri processi) nella visualizzazione Thread del visualizzatore di concorrenza rappresentano i casi in cui la GPU stava eseguendo l'elaborazione delle richieste per conto di altri processi nel sistema. Queste richieste vengono inviate alla GPU come pacchetti di accesso diretto alla memoria (DMA). La lunghezza di un segmento rappresenta l'intervallo di tempo per cui il pacchetto è stato elaborato dalla GPU.
Quando si seleziona questo tipo di segmento, il rapporto nella scheda Corrente visualizza le informazioni sul pacchetto che è stato elaborato. Le informazioni includono la quantità di tempo per cui il pacchetto è rimasto in attesa nella coda hardware associata al motore di DirectX, il processo che ha inviato il pacchetto e il tempo richiesto per elaborare il pacchetto.