Anyone know what the landscape of low power mode or app throttling is on Windows or Desktop Linux?
Asking as I think macOS / appKit already invested some effort in encouraging app developers to be cognizant of power usage. There’s a wwdc talk circa 2016 (after the single usb-c fanless “MacBook” came out) that delved into this topic - https://developer.apple.com/videos/play/wwdc2016/719/ ~25minutes in delves into QoS threads.
Asking as I think macOS / appKit already invested some effort in encouraging app developers to be cognizant of power usage.
Also, macOS throttles timers, I/O, and reduces priority of applications that are not interacted with (‘App Nap’):
It mostly helps to give more resources to apps that a user interacts with. But time throttling, etc. does reduce energy use. It also provides APIs for apps to know that they are (probably) going to be put in App Nap.
On my Quad G5 I usually ran it in Reduced performance, and Highest when I was doing a job I needed done fast. I realize CPU power management has changed greatly since 2005, but there’s definitely precedent for this in the macOS, and there’s good use cases for throttling when you know you won’t need the CPU cycles.
I wonder what the power consumptions in reduced/highest modes on a Quad G5 are. Do you have any numbers?
I seem to recall it was a difference on the order of 50W or so, depending on CPU load. Definitely not trivial. ISTR the Quad in Reduced drew somewhere between 200-250W per the UPS readout (it’s no longer hooked up to it, so I can’t easily check just now).
On OpenBSD, apmd -A automatically adjusts the performance.
macOS (obviously) also automatically performs frequency scaling, etc., based on use. Marco is asking for official support to disable Turbo Boost. This can be done with an extension, but since Apple is tightening up extensions and moving to user-space third-party extensions, this extension may not work anymore in future macOS versions.
I’ve also used a machine with turbo off for a while, and it was fine. Marco gets at this, but the OS can likely be a lot more fine-grained; it can limit the duration or level of turbo without turning it 100% off, and try other stuff like throttling background work.
Also, the OS also knows battery charge level, discharge rate/plugged-in status, and temps/fan RPMs, all of which could help it make educated guesses about just how severely to limit power use.