I profiled an app (Mac OS) using CPU Profiler, part of the XCode Instruments tools.
I expect that each thread (of my process) can at the most consume 100% CPU usage. It cannot consume more than 100% of a hyperthread/core, since a thread can only ever run on a single core at a time, not two.
However, I am surprised to see ~290% CPU usage reported for a thread in the XCode CPU Profiler!
This makes me take a step back and wonder -
- What is the unit of the CPU usage shown in the "timeline" view for a thread in the XCode profiler?
- What does a value over 100 (for a single thread) indicate?
See this example screenshot from XCode Instruments' CPU Profiler, showing a single thread:
