CPU Utilization is Wrong
The core waiting for data to be loaded from RAM <i>is</i> busy. Busy waiting for data.<p>Instructions per cycle can also be misleading. Modern cpu&#x27;s can do multiple shifts per cycle, but something like division takes a long time.<p>It all doesn&#x27;t matter anyway, as instructions per cycle does <i>not</i> tell you anything specific. Use the cpu-builtin performance counters, use perf. It basically works by sampling every once in a while. It (perf, or any other tool that uses performance counters) shows you exactly what instructions are taking up your processes time. (hint: it&#x27;s usually the ones that read data from memory; so be nice to your caches)<p>It&#x27;s not rocket surgery.