EcoQoS gives Windows 11 apps better battery life

On newer processors, Windows can tune where and how fast code runs for power savings; here's where you will see that show up.

A keyboard with a battery warning on it.

Image: Cienpies Design/Shutterstock

One of the differences between desktop and mobile operating systems is how much work goes on in the background. Smartphone OSes are very aggressive about turning the processor off as quickly as possible to save power, often limiting what apps and services can run in the background, or postponing OS maintenance until your device is plugged in and connected to Wi-Fi overnight. On Windows, a lot of code can be running in the background to do useful things like checking for malware, indexing files for search, uploading files for cloud sync or downloading and applying updates to reduce the amount of time you spend looking at a Windows Update restart screen. 

SEE: Windows 10: Lists of vocal commands for speech recognition and dictation (free PDF) (TechRepublic)

Windows uses logic about what applications you're using so that background activity doesn't affect the performance of what you're doing on your PC, but increasingly it also includes logic to reduce the amount of power the system uses, to increase battery life (or cut your power bill for a desktop PC). Universal Windows Platform apps are designed to be suspended without losing data, but most applications aren't UWP apps. Windows 8 added a Desktop Activity Moderator that pauses desktop apps and throttles services for third-party apps so they don't run your battery flat while your PC is in standby, but that doesn't affect power usage when your PC is on. 

There are seven power profiles included with Windows (and you can customise them or create your own with the POWERCFG utility). Low Power and Standby (or Screen Off) optimize for lower-power usage, Mixed Reality and Game Mode optimize for sustained performance but they affect all the software and services that are running. 

If you're playing music to help you focus while you're working, you don't want that getting turned off to save power, but you may not need the scripts on a web page you're not looking at to keep running in the background. You also don't want any power-saving features to slow you down when you're trying to open the Start menu or load an application (or opening Task Manager to see what's using all your PC's resources), which means making power management more granular.

Back in 2017, Microsoft added a feature (initially called Power Throttling and also known as Quality of Service or QoS) to Windows 10 to run background tasks the most energy efficient way. 

Not all tasks need the highest possible performance from the CPU, so Windows tries to detect which applications do need high performance—foreground apps, anything playing music and other tasks that applications depend on. Then it uses Quality of Service levels to tune the CPU using processor power management and scheduling for the appropriate balance of performance and power efficiency for different processes and threads: apps in the foreground need a high QoS, apps that are visible but not in focus get a medium QoS, and minimized, hidden or background apps and other activities can deal with a lower QoS.  

SEE: 83 Excel tips every user should master (TechRepublic)

There are also specific Quality of Service levels for playing media like audio, which might need more priority. Each level has specific power management settings, Microsoft told us. That can mean setting a maximum CPU frequency or, if the CPU has the logic to control its own clock speed (known as autonomous frequency control), telling it to optimise for performance or efficiency for a specific execution thread. If the PC has a 'heterogeneous' processor that mixes smaller, lower power and larger, more powerful cores, the QoS level of the thread can also control which kind of core the thread runs on.

You can control how aggressively Windows throttles background applications and services by clicking on the battery icon in the taskbar and changing the Power Mode; Battery Saver and the Recommended power setting try harder to keep the CPU in the most energy efficient frequency range and if you choose Best Performance it won't do any power throttling. You can also turn this off for specific apps by looking at the Battery usage per app list in Settings, Battery and making sure it's not set to Managed by Windows.

choose-whether-windows-can-throttle-the-performance-of-individual-apps-when-they-are-running-in-the-background.jpg

Choose whether Windows can throttle the performance of individual apps when they are running in the background.

Going eco

Initially the idea was to improve battery life on laptops and tablets, but with sustainability becoming a key issue for Microsoft, energy efficiency is important even on PCs that are on main power. 

Usually, power throttling takes into account whether the PC is plugged in, what the battery level is and what the Windows power mode slider is set to. But there are some tasks (or entire applications) that routinely don't need high performance, like updaters, sync engines, indexing services and other things that always run in the background. For Windows 11, application developers can tag a thread in their code, or an entire process, with a new QoS level called EcoQoS and Windows will know to always optimise the CPU to run that code with the greatest power efficiency, whatever the power mode and battery level.

Different CPUs have different performance and power characteristics, so the best CPU frequency for power efficiency with EcoQos will vary between processors, but on many modern processors it will be in the 1.0GHz to 1.6GHz range. Initially, Microsoft tells us, EcoQoS works best with most of the latest Intel 10th and 11th Generation Mobile Processors, AMD Ryzen 5000 Series Mobile Processors and Qualcomm's series of processors. Power Throttling relies on technology like Intel SpeedStep that's in older processors but currently, using EcoQos won't improve power usage as much on older CPUs. Over time, Microsoft will work with silicon vendors to get EcoQoS CPU tuning for a wider range of processors and to bring it to desktop PCs.

SEE: How to get the Windows 11 security protections on an existing PC (TechRepublic) 

The new x86 Core Microarchitecture that Intel has just announced for the upcoming Alder Lake processors, which include different CPU cores designed for performance and efficiency respectively, will make power throttling and EcoQoS more effective by giving Windows more information about the state of each core and more details about the threads running on them. 

As Microsoft Partner Development Manager Mehmet lyigun explained at Intel's Architecture Day, Windows 11 will take advantage of this new Intel Thread Director; "Much of this work centres around the OS thread scheduler, the kernel component that decides which threads to run and where to run them. These decisions have a huge impact on user-perceived performance and power consumption, especially on devices built on hybrid processor architecture."

"Up until now, the scheduler had no visibility into the workload running on a thread, whether it's copying memory, spinning in a loop or performing complex calculations. As such, when demand for high-performance cores exceeded supply, it made suboptimal decisions because it couldn't identify the workloads that would benefit most from the performance."

Instead of just knowing whether an application is in the foreground or whether the application developer has set EcoQos, the system can make sure threads with higher performance requirements, like playing a game, rendering videos or doing complex image processing, are assigned to performance cores (P-cores) and cloud sync or backup tasks, or any code tagged with an EcoQoS level, run on the efficient cores (E-cores).

That prioritization is dynamic; if a higher-priority app or task starts running, other threads might move from a performance core to an efficient core. And it's granular; running Photoshop or Office means some threads will need to be on P-cores but other threads in the same application can run happily on E-cores.

"The Windows 11 thread scheduler is much smarter about dynamically picking the most appropriate core, based on the workload to achieve the best power and performance," lyigun explained. "Even when all the cores are busy, it can preempt a thread running on a P-core or to swap it with a thread running on an E-core, if the latter can benefit more from the P-core."

Intel Thread Director also gives Windows hints about managing the processor, like turning a core off completely to save power. 

EcoQos apps

Background tabs or sleeping tabs in Microsoft Edge use EcoQoS on Windows 11. When you haven't been looking at a tab in Edge for a while, you'll notice that it's greyed out; that pauses the timers on any scripts running in the tab, minimizing CPU usage and telling Windows it can reuse some the memory for other open tabs, new tabs or system applications. In Windows 11, those background tabs are also tagged with EcoQoS, so Windows can schedule the CPU threads that are still running for those tabs more efficiently.

Search indexing for Windows 11 also uses EcoQoS so it takes less power to scan and index files. Microsoft tells us there are other examples of EcoQoS in Windows 11 that it isn't talking about yet and that it's going to use it in more places to make Windows more power efficient.

One power efficiency that isn't currently in Windows 10 or 11 is the Task Manager Eco Mode that briefly appeared in Insider builds. This showed which apps were using EcoQos and also used EcoQoS and some other technologies to give users a way to mark processes they didn't want to use too many resources without having to shut them down altogether, by setting an app into Eco Mode.  

task-manager-eco.jpg

Eco Mode was a way to let you see which apps were set to be more efficient and add apps to the list yourself. 

Image: Microsoft

Microsoft said it was "turning off the "Eco mode" feature in Task Manager in order to refine the experience and address several issues thanks to Windows Insider feedback." But EcoQoS has been in Insider builds for some time, if you have the right processor. And Intel Thread Director support will be in Windows 11 when it ships.

Also see