The Activity Monitor in macOS may not be as accurate with the data it provides to Apple Silicon users, with a report claiming the tool cannot properly tell the difference between performance and efficiency cores.
The Activity Monitor offers a way for users and developers to tell what apps are using up the most resources, and the most energy, when performing tasks. In testing of elements of the tool's features on a Mac running Apple Silicon, it appears that a small mistake in core recognition may have wildly thrown off some of the results.
Using the Activity Monitor's CPU and Energy figures, a user can potentially see that an app's code running just on efficiency cores are reportedly using more energy than performance cores when completing a task. As efficiency cores are intended to be slower but with lower power usage than performance cores, the result is fairly contradictory.
Testing by The Eclectic Light Company on a Mac Studio equipped with an M1 Max involved running threads on the 8 performance cores and 2 efficiency cores. When 8 threads of floating point maths with 1 billion loops per thread are limited to each core type, the 8 performance threads completed the task in 6.6 seconds, and the 2 efficiency cores took 40.4 seconds.
However, checking Activity Monitor's Energy tab indicated the performance cores sustained an energy value of 800, with a total of 5,280 units used at 660 per thread. Meanwhile, the efficiency cores sustained an energy value of 194, with a total of 7,838 units consumed, or 980 per thread.
If taken at face value, this would infer that running those specific threads on the efficiency cores turns out to be less efficient than the performance cores. The problem is due to Activity Monitor, the report claims, since it cannot tell the difference between identical cores with a fixed frequency and two different core types with variable frequencies.
It was also found that there were problems in how it reported load between cores. One test determined running twice the amount of code on two efficiency cores was reported in Activity Monitor as using the same amount of energy as half the code amount.
It is believed that the results are also inconsistent across different M1 chips due to how macOS controls the frequency of efficiency cores, so an M1 will handle reporting differently from an M1 Pro, for example.
"Until Apple updates the figures returned by Activity Monitor for M1 chips, confounding by core type and frequency makes it not just useless, but actually misleading for comparing CPU % or energy." the report adds. Instead, tools such as Powermetrics should be considered by developers, as it provides information about cluster frequencies and power use, along with active residency.
It's not clear if Apple has any intention of updating Activity Monitor. It has not seen any notable improvements in the entire time that Apple Silicon has existed.
2 Comments
I want Activity Monitor to tell me about the usage of my M1's Neural Engine cores.
This makes me wonder whether Apple’s internal developers are using Activity Monitor as part of their toolset or have some sort of special “internal use only” tool for helping them with their work. For developers and testers, this type of tool would get a lot a use for app characterization purposes, along with other tools of course, but especially for third part developers. You’d hate to think that Apple is allowing third party developers/testers to run with slightly broken tools while their internal developers have tools that actually work.