Code:
DATE TIME MULTI C0% CKMOD CHIPM BAT_mW TEMP
2016-12-13 10:06:00 10.50 2.9 100.0 100.0 0 44
2016-12-13 10:06:01 10.50 0.8 100.0 100.0 0 44
2016-12-13 10:06:02 10.50 3.0 100.0 100.0 0 44
2016-12-13 10:06:03 10.50 0.7 100.0 100.0 0 44
2016-12-13 10:06:04 10.50 3.9 100.0 100.0 0 44
2016-12-13 10:06:05 10.50 3.5 100.0 100.0 0 44
ThrottleStop accurately logs the percentage of time the CPU is in the C0 state, which is the state it is in when it is working on a task. When a core has nothing to do, it will fall back into one of the low power C States like C1 or deeper like C7 if that is available. TS measures C0 state activity for each individual thread or core and then averages the data into a number between 0% and 100%.
For an example and to keep things simple, let's say that we have a 4 core CPU without hyper-threading. If you were running an app and the log was showing that your C0% was averaging about 26%, that would mean that 1 of your 4 cores was fully loaded (25%) and the other 1% that your CPU was spending in the C0 state was probably just Windows running its 101 background tasks. This shows the main task is predominately single threaded so adding more cores or stepping up to a hyper-threaded CPU is probably not going to show any noticeable improvement in performance. In this situation, it is always good to have 2 cores available so when Windows background tasks become active, they can be assigned to the second core. That allows the main core to keep working on whatever it is doing. Do you need 3 cores or 4 cores for this task? Probably not. If you added 1 or 2 more cores, they would be sitting idle about 99% of the time.
In a situation where a 4 core CPU has hyper-threading available, now there are 8 threads available to complete tasks. If you are running a game or task and the C0% starts going over 50% on a regular basis, that means 4 of your 8 threads are fully loaded. If these tasks are being properly scheduled, all 4 cores will be fully utilized and the 4 hyper threads will be available to process any tasks beyond that. At this point, it is time to start thinking about adding more cores. Hyper threading is good but an actual core is usually going to be an improvement.
That's the theory. There are going to be situations where the C0% is say between 50% and 60%. Sure this might run slightly better on a 6 core CPU but is it really worth the cost of upgrading just for this amount of load? Probably not. Four cores with hyper threading should be able to handle this.
Most people like looking at the squiggly lines that the Task Manager shows but there are situations where this data might not be giving you an accurate look at what a CPU is doing. I have a Core i7 laptop with hyper threading so it has 8 threads available. When running a 4 thread TS Bench test, that should result in the CPU spending 50% of the time in the C0 state working on the benchmark and another 0.5% in the C0 state for the Windows background task processing. Have a look at what the Task Manager shows during this very steady load.
Task Manager reports a nice and steady 71% Utilization number. It took me a while to understand where this number was coming from but I think it scales the actual C0% based on what the default multiplier is for this CPU. The turbo boost multiplier is 34 divided by the 24 default multiplier equals (34/24) or a factor of 1.4167. Take that scaling factor and multiply it by 50.5% and you get a Utilization value of about 71%. Interesting. Completely useless information but definitely interesting. Users put way too much faith in those squiggly Task Manager graphs. I prefer C0% because it is a much more precise measure of how many cores are being used or needed.
Anyone with some Excel skills should be able to convert that log file data into some fancy looking graphs and pie charts. Not sure if I will ever get around to adding something similar directly to ThrottleStop but I might.