Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a way to see how much CPU usage per core a process is using?

I know in perfmon you can see how much each core is utilized, and how much total CPU a particular process is using. However I can't seem to find a way to see how much CPU a process is using broken down by cores.

Is there a built-in way to see this information? Is there a programmatic way to see this? (C# preferred) Am I demonstrating a misunderstanding of how Windows (Vista) handles core usage and context switching by asking this question?

Edit: More clarification of what I want to find out. Is my process only using 30-40% total CPU (on a quad core) because it's not sufficiently multi-threaded to utilize more or is it because it's too I/O bound and disk access is the bottleneck?

So is there no way to do this at all? (other than make sure there's no other CPU activity going on on the computer)

like image 805
Davy8 Avatar asked Mar 12 '09 15:03

Davy8


1 Answers

Process Explorer at least can show you the threads of a given process and how much CPU those are using. Maybe you can get the core/cpu on which the threads are running somehow and then just add up. I have not much WinAPI experience, though. So maybe processor affinity can only be queried on processes.

like image 100
Joey Avatar answered Nov 15 '22 11:11

Joey