2009-03-12 28 views
5

So perfettamente che è possibile vedere quanto viene utilizzato ogni core e la quantità totale di CPU utilizzata da un determinato processo. Tuttavia non riesco a trovare un modo per vedere quanta CPU viene utilizzata da un processo suddivisa per core.C'è un modo per vedere l'utilizzo della CPU per core di un processo?

C'è un modo integrato per visualizzare queste informazioni? C'è un modo programmatico per vedere questo? (C# preferito) Sto dimostrando un fraintendimento di come Windows (Vista) gestisce l'utilizzo di base e il cambio di contesto ponendo questa domanda?

Modifica: ulteriori chiarimenti su ciò che voglio scoprire. Il mio processo utilizza solo il 30-40% della CPU totale (su un quad core) perché non è sufficientemente multi-thread per usarne di più o perché è troppo legato all'I/O e l'accesso al disco è il collo di bottiglia?

Quindi non c'è modo di fare questo? (oltre a verificare che non ci siano altre attività della CPU in corso sul computer)

risposta

1

Process Explorer può almeno mostrare i thread di un determinato processo e la quantità di CPU utilizzata. Forse è possibile ottenere il core/CPU su cui i thread sono in esecuzione in qualche modo e quindi basta aggiungere. Non ho molta esperienza WinAPI, però. Quindi forse l'affinità del processore può essere interrogata solo sui processi.

2

Non è possibile ottenere direttamente i tempi di ciclo per-processer per un dato processo, ma è possibile stimarlo nel tempo con QueryIdleProcessorCycleTime (poiché restituisce i tempi di inattività per tutti i processori logici, ovvero i core) e QueryProcessCycleTime e presupponendo che è l'unico processo non inattivo in esecuzione.

+0

lol, difficile da ottenere che il mio processo sia l'unico processo non inattivo durante l'esecuzione in Vista, così tanto rumore di fondo – Davy8

Problemi correlati