Details
-
User Story
-
Resolution: Fixed
-
P2: Important
-
6.1.0
-
-
Foundation Sprint 116, Foundation Sprint 117, Foundation Sprint 118, Foundation Sprint 119
-
6013f82c9 (dev)
Description
The arrival of new products using the new Apple Silicon platform resulted in a few important "aha" effects. One of them is very impressive power efficiency of the new M1-based MacBooks. As an M1 user, I can confirm: it is completely outstanding.
I can imagine that Qt developers targeting MacOS, and even iOS, which are now becoming multi-platform too, would like to see their app running in the best form and not being spotted as still consuming too much CPU on such an efficient platform.
According various sources, one of the key factors of this efficiency is the use of QoS (Quality of Service) available as API in MacOS for some while. It seems, they are used in certain combination with the POSIX API for the thread priorities. The newer versions of MacOS (I guess, starting from Big Sur) use these classes to assign threads to different kinds of CPU cores. The M1 MacBook Pro 13", for example, has 4 Performance and 4 Efficiency cores. In practice, most platform services, and Apple apps run on Efficiency cores during "regular", low-activity, MacBook use, such as Mail, Safari, writing text, etc. I observe, it correlates directly to the very low battery use.
I believe it would be appealing for Qt developers to be able to use QoS directly from Qt or even combined in a certain way with the classical POSIX APIs.
Some References:
- https://eclecticlight.co/2021/05/17/how-m1-macs-feel-faster-than-intel-models-its-about-qos/
- https://developer.apple.com/library/archive/documentation/Performance/Conceptual/power_efficiency_guidelines_osx/PrioritizeWorkAtTheTaskLevel.html
- https://developer.apple.com/documentation/apple-silicon/tuning-your-code-s-performance-for-apple-silicon?language=objc
Attachments
Issue Links
- resulted in
-
QTBUG-124546 Thread/Application Quality of Service API
-
- Closed
-
For Gerrit Dashboard: QTBUG-93946 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
598737,2 | wip Apply thread Quality of Service | dev | qt/qtbase | Status: NEW | -2 | 0 |