Shows the current and average cpu usage for a named process. If more than one
process share
the same name, they will all be shown and summed:
Windows 8 / 7 / Vista version:
|
Older version (for Windows XP):
|
The program is ideal for measuring the cpu usage for specific programs,
to find out the total average cpu usage of a program for its entire uptime or
to start measuring at a point in time you are interested in. The latter is for example useful to find out how
much cpu a program uses when idle.
The Vista/7 version uses the kernel32.dll function QueryProcessCycleTime which makes it possible
to measure smaller cpu bursts than with other more commonly used methods. It also makes the
measurements
less dependent of the current cpu frequency if your system uses processor frequency scaling/throttling.
Operation
Either type in the process name or press the "Process" button to chose it from a list.
By default, the average value is based on the named program's total uptime and total
cpu cycles. By pressing "from Now" you can measure from the current point in time instead.
If you want to monitor more than one process name, then just start more instances
of Average CPU.
If it says "Access denied" for a process you want to monitor, then you have to
start Average CPU by right clicking it and chose "Run as administrator".
The Current and Average meters: When the bar is thin and "1%" is visible, the whole
bar represents 1% of the cpu (all cores). When the bar is thick, the whole bar
represents 100% of the cpu (all cores).
The vertical "fader" control sets the measurement interval. It's by default set to 1 second and
can be set in between 2 seconds and 20 milliseconds. Setting it to a very low value
can in many cases tell you more about a program.
The data
Average CPU : The process' average cpu usage in percent of all cores. Reset it with one of the buttons.
MHz used now : This is a current value of how many MHz the cpu would need to be
able to run the amount of cycles
since last measurement on one core.
Total CPU cycles : The number of cpu cycles the process has run. Reset with one of the buttons.
Average total : All "average cpu" values summed. This is only shown when there are
more than one process displayed.
Current : How much cpu in percent of all cores the process(es) used since last measurement.
Settings
It is very important that the number of cores and the cpu's maximum frequency is
correct, or none of the percentages shown will be right.
In case the program retrieves the incorrect cpu info,
you can adjust this. I'm not sure when this would happen though. Maybe if your
cpu is overclocked or something. Well, I added this just in case. Just click on the
small cpu info at the bottom of the screen to adjust it.
Accuracy
So just how accurate is Average CPU Cycles (the Vista/7/8 version)? Well, at least it's more accurate than most
other
process monitors. The Windows Resource Monitor says Winamp uses less than 0.01% cpu
on my computer. Average CPU Cycles says it uses 1.5% so which is more correct?
Average CPU Cycles says Winamp uses 84 MHz (and 73 MHz when minimized). In other words, you would be able to
run just one core of my cpu at 84 MHz and winamp would still work. But the figure from the Windows Resource
Monitor would translate to less than 0.56 MHz. The Resource Monitor tells me in
other words that it probably would work to play a mp3 on a 1MHz Commodore 64!
That is silly. The
C64 is an 8 bit machine though, but that
figure is just silly no matter what.
I could not even play a mp3 in full quality on my 40MHz 68040 Amiga. I could play
it in mono and in degraded quality.
The XP version uses an older measurement method and should compare to the
Windows Resource Monitor and similar programs. You can run the two versions side
by side to compare the results.
Tips for accurate measurements
Even if Average CPU Cycles is less dependent of the current cpu frequency than the
XP version (and most other cpu meters), the measurements still are dependent of the
frequency.
When running at 35% cpu frequency, my values shows in between 10-40% lower
compared to when running the cpu at 100% frequency. (With the XP version, it would
be about three times higher instead). I don't know why this is. Maybe the
QueryProcessCycleTime function has a flaw or maybe this has something to do with
how Windows works - that programs has to wait more cycles for system calls when the
frequency is high or something.
Anyway - For accurate comparisons, keep the cpu at a steady frequency!
But this is not all. The measurements are influenced by the total computer load as well.
If I for example scroll around heavily in a web browser, the values for a completely
different program goes up slightly. Again, this probably has something to do with
how Windows works - if the system is occupied, maybe other programs making system
calls has to wait more. So - for the most accurate measurements; Keep the frequency
static and
don't do other things with the computer while measuring.
Also; Always wait for the average value to stabilize! Also repeat the measurement
to see if you get the same value again.
Download
The program is "Spread-the-word ware". If you intend to use the program after your initial evaluation, you have to
post a permanent link to this page (or to the main page)
as a new post somewhere (not as a comment to a another post about it). You can do this
for example on Facebook, on a forum, or on your blog or homepage.
Download:
The program doesn't need any installation. Just save it somewhere, for example
on your desktop. (NET 2.0 is required. Included by default in Windows 7 and Vista. )
Don't miss Boray's music!
More programs by Boray
If you like this program, you will likely like some more of my programs.
History
V1.0 2011-07-16 Initial release
V1.1 2011-07-17 Added the "current" value, graphic bars, the process list, the interval control, the "Now" measurements and the possibility to start it with a process name from the command line. Adjusted values for multi core CPUs.
V2.0 2011-07-20
Using the kernel32.dll function QueryProcessCycleTime instead of the .NET function
UserProcessorTime.TotalSeconds. The meters are scaled between 100% and 1%.
The "MHz used now" column was added while the "program only" column was removed.
Color changes. The small cpu info at the bottom was added.
V2.1 2011-07-21
Reading the cpu frequency in a different way. You can now click on the cpu
info to change and save settings. Other graphics for the meter bars. New icon.
"On top" checkbox. Current process is highlighted in the process selection
window.
V2.2 and V1.2 2011-07-22
I found out that QueryProcessCycleTime only is included in Vista and later, so
I re-released V1.1 with some changes for XP users. Both V2.2 and V1.2 also includes
a bugfix for computers with low resolution timers.
V2.2.1 and V1.2.1 2011-07-24
A small bugfix. On the XP version, the current process is now also preselected in
the process selection window just as on the Vista/7 version.
V2.2.2 and V1.2.2 2011-07-24
Both versions now only require .NET 2.0 instead of .NET 3.5.
V2.3.0 2011-08-01
Added an "Average MHz" value and changed the text layout and colors.
V2.3.1 2011-08-02
Somewhat increased accuracy (it now waits for a new timer tick when pressing "Now"
and before calculating anything).
V2.3.2 2014-02-11
The program crashed if the measured process was terminated in the time between a process handle was acquired
and the cycles was measured. This gap must have been microscopical but it actually happened to me. I also
updated the web address to my new domain.
| |