Utilizzando Process Explorer di Sysinternals, esiste una colonna che può essere utilizzata per indicare su quale CPU è in esecuzione un processo? Se nessuna colonna, c'è qualche altro modo?
Utilizzando Process Explorer di Sysinternals, esiste una colonna che può essere utilizzata per indicare su quale CPU è in esecuzione un processo? Se nessuna colonna, c'è qualche altro modo?
Risposte:
Richiesto nel 2005 :
Sono rimasto molto colpito dalle funzionalità integrate in Process Explorer, ma vorrei vedere un'opzione per visualizzare ogni affinità della CPU di processo nella finestra principale come interruttore a colonna.
Nessuna risposta.
Richiesto nel 2007 :
Grazie per le superbe utility. La mia richiesta è quella di aggiungere un'opzione di colonna per elaborare Explorer per visualizzare l'affinità della CPU. Questo è tutto.
Nessuna risposta.
Simile discusso nel 2013 :
Sarebbe davvero bello se ci fosse una nuova colonna di visualizzazione delle prestazioni del processo chiamata Core Usage che mostrerebbe una somma dell'uso sul core su cui è in esecuzione il processo.
Sinossi di base: non si può fare.
I thread sono ciò che viene inviato ai core per l'elaborazione, non i processi. I processi più moderni hanno più thread.
Se si imposta manualmente l' affinità per un processo, tutti i thread per il processo dovrebbero attenersi a un singolo processore. Dato che lo hai impostato manualmente, dovresti sapere su quale CPU è accesa. ;)
Ma se non specifichi, i thread saranno controllati dal sistema operativo e dall'hardware di elaborazione sottostante e salterebbero tra i processori a una velocità che sarebbe inattaccabile e molto probabilmente inaccurata dal momento in cui veniva visualizzata voi.
Forse dai un'occhiata a queste domande SU per ulteriori informazioni:
Inoltre, da StackOverflow:
Ora se hai scritto il programma, puoi utilizzare GetCurrentProcessorNumber , che riporta il processore corrente in uso dal thread da cui è stata chiamata la funzione.
L'uso di questo ti consentirà di fare stime sull'utilizzo del processore da parte dei tuoi thread, poiché non puoi mai essere sicuro di dove saranno i thread da un ciclo all'altro (di nuovo, a meno che tu non abbia impostato l'affinità di proposito).
Ulteriori informazioni:
Questo può essere fatto catturando una traccia xperf e aprendola con Windows Performance Analyzer (WPA.exe) da Windows Performance Toolkit, qui puoi aggiungere una colonna CPU per vedere quale CPU (Core) è in esecuzione il processo: