Just recently my PC's performance has become dismal, I even got about 10 'pauses' in the editor while typing these two sentences. Now if I used Process Explorer, I can sort by CPU, memory, and IO, descending, so the culprits are always visible at the top of the table.
The problem with that is that the top resource hogs change very rapidly, and it is hard to narrow down processes that are long term hogs. I would like to monitor per process CPU, memory, and IO over several hours or days, and log this data, and then extract reports to identify the lager and more consistent hogs.
I have looked at Process Monitor, but that seems more oriented to capture process activities vs. overall resource usage, and I haven't yet found a way to aggregate these activities by summing and grouping by process.
The problem sometimes seems to be I/O related, based on Process Explorer, and sometimes on CPU "overloading". I would like to track and log usage of these resources per process, for every process, over a period of 24 to 48 hours, as the sluggishness is transient.
It is however more pronounced in some applications, like Chrome and Visual Studio, while e.g. Notepad++ suffers no bad performance. I am also starting to suspect slow memory paging to and from disk, and am anxiously awaiting opportunity to get an SSD for the OS and one or two large on I/O apps, but that will take some time.
I am looking for some sort of third party tool - free or trial - that will let me collection CPU %, IO reads/writes, and memory usage, per say top ten processes over a few hours, and then hopefully display graphs of these over time, or at least give me real data, to either look at or graph myself.
What I have tried:
I have tried just watching Process Explorer, in vain, as when I sort by usage descending, all I see is current use, which jumps up and down and isn't much use as a time span monitor.
I have tried Windows Performance Monitor (WPM), but that effectively only gives me performance counter totals, and I have not figured out how to count these per process, so all I see when I eventually graph the dataset is total counts from all processes.