CPU Usage discrepancy - 80% in AB = 100% in Task Manager

Discussion in 'MSI AfterBurner Overclock Application Discussion' started by CaptaPraelium, Nov 20, 2017.

  1. CaptaPraelium

    CaptaPraelium Member

    Messages:
    21
    Likes Received:
    3
    GPU:
    1070
    Recently while troubleshooting my PC I suspected a CPU bottleneck, and I was monitoring CPU usage using AB/RTSS OSD. The OSD, AB monitors, HWInfo, HWMonitor, pretty much everything was telling me that my CPU was sitting at around 80%. By chance, I looked at task manager during the load, and it was reading 100%. Switching to any of the other monitors, I noticed that they all still said around 80%.

    Looking into this further, it seems like this may actually be a windows bug/feature. In Windows' Task Manager, I can see a similar discrepancy between the reported CPU utilization, and the CPU Idle process. For example, if the CPU usage is at 4% (idle) the Idle Prcoess reports 99% usage. Obviously, this doesn't add up. It appears (I may be wrong about this!) that all of the monitoring apps I've used (AB,HWInfo, HWMonitor, etc) are reporting the CPU usage as (100 - Idle Process Percentage) ... Which isn't really very accurate at all.

    Any advice on how to deal with this?

    Win10 FCU, latest AB/RTSS/other monitoring apps. I noticed the same issue with Win10 CU.
     
  2. Unwinder

    Unwinder Moderator Staff Member

    Messages:
    13,205
    Likes Received:
    230
    Unified CPU usage reporting is always based on periodically estimating and reverting per-core idle time in any application, it is industry standard and it is not "isn't really very accurate at all". AB's (or any other tool's on the scene) approach is open source, it is demonstrated in RTSSSharedMemorySample source code (CalcCpuUsage in RTSSSharedMemorySampleDlg). But if you wish to create alternate implementation - plugin SDK is waiting for you ;)
     
  3. CaptaPraelium

    CaptaPraelium Member

    Messages:
    21
    Likes Received:
    3
    GPU:
    1070
    I understand this. In my embedded development this is always the method that I have used and been taught. The trouble is that the applications and windows' idle process are reporting idle time which isn't actually available. They'll say 80% usage, so 20% idle, but in fact I am at 100% usage and no spare CPU. The method is correct, but the results are inaccurate.

    As I said, I feel that this is a problem with Windows, and your reply has confirmed my suspicion that AB is reading idle time as is the standard, so I guess I was correct that windows is mis-reporting idle time. I've also found articles online reporting similar misbehvaiour from Windows in previous versions.

    I won't hold my breath that MS ever fix this.
     
  4. Agent-A01

    Agent-A01 Ancient Guru

    Messages:
    10,381
    Likes Received:
    266
    GPU:
    1080Ti H20
    Looks like you are confusing processor time with usage.

    Depending on the program(obviously they may have different implementations of reading CPU usage) if it says one process has 50% usage, it may mean that the process is using your CPU 50% of the time, not actual 50% of total CPU power.

    BTW if Idle process says 99% usage, it means 99% of your cpu is not being used. AKA only 1% of it is in use.
     

Share This Page