Reduce Process Interference with Task Manager Eco Mode
Task Manager Eco Mode is a new feature that gives you options to ensure certain running processes won’t stress the CPU out, leading to faster foreground responsiveness and better energy efficiency. It also helps you to identify apps that are already running in Eco Mode and are good citizens of the OS. The goal is to give power users control of process resource consumption and it contribute to Microsoft’s Sustainable Software initiative. At a high level, the Task Manager Eco Mode limits process resource usage by reducing the process priority and ensuring it runs efficiently on the CPU by leveraging EcoQoS.
Some applications continue to consume system resources (CPU, memory, disk, networking) even when they are idle and not being actively used or providing value to the user. This results in less resources being allocated to guarantee the performance needed for the user-desired applications. It may also lead to increased thermal and fan noise, as well as shortened battery life.
Task Manager is the go-to utility tool if a user wants to understand how well the system performs. We want to provide our users the way to limit the resource allocation on a per-process basis (in addition to just terminate a process since it might lead to undesirable issues), so the work from the processes can be executed as efficiently as possible, minimizing their interference with the foreground experience. The signals that we get back would help Windows to influence app teams to run as efficiently as possible.
The Feature Explained
The Windows Operating System provides a few knobs that can be turned to tune a process’ resource availability. For the first iteration, we focused on CPU as it is the most contended and power-consuming resource on modern devices.
When Eco Mode is enabled on a process, it a) reduces process base priority to low, and b) sets QoS mode to EcoQoS. Low priority ensures that this process does not interfere with higher priority processes that the user is actively using. EcoQoS ensures the process is executed in the most power efficient manner. This could mean running the processor at a lower frequency to save power, and it helps improve the thermal footprint of the CPU. We see up to 4x improvements (or ~76% reduction, see below) in UI responsiveness on a CPU contended system. The following section discusses improvements in detail.
To measure the benefits of Eco Mode, we test the completion time of certain activities like app launch and Start Menu open on a “busy” system. During these scenarios, the system has a synthetic CPU workload running in the background to simulate a busy device. This CPU workload runs on normal priority thread per CPU core 100% of the time, meaning it does not attempt to yield the CPU by sleeping or blocking. We can measure the effect of Eco Mode on the foreground experience by comparing the completion times when the system is loaded with the CPU load without Eco Mode applied, to when the system is loaded with Eco Mode applied to the CPU workload, both normalized to the baseline completion times without the CPU load. The chart below shows the results:
The results show that setting Eco Mode on the CPU workload vastly improves the responsiveness of the system by 14% ~ 76% across the common scenarios we tested. Recall that Eco Mode consists of both lowered priority and EcoQoS. EcoQoS can save thermal headroom for the foreground or ‘important’ work by keeping the CPU from working too hard on the background work, while the lowered priority ensures that the foreground work gets to run first.
Here is how to enable Eco mode for a given process in the Task Manager Processes tab (the same process works in the Task Manager Details tab too):
- Open Task Manager.
- Click on Processes tab.
- Right-click on a child process or an individual process.
- Click on “Eco mode” in the context menu to apply throttling.
- The status column in the Processes tab should show Eco mode for the process.
If “Eco mode” is greyed out, then it’s a parent/group process. You can expand the process tree to apply Eco mode on one of its child processes.
Note: If Microsoft Edge (or Chrome) is showing “Eco mode” as enabled but you did not apply it, this is due to both Microsoft Edge and Chrome experimenting with lowering base priority and applying power efficiency APIs to improve efficiency which is similar to what Task Manager is doing to identify “Eco” efficient apps. You may see other apps with “Eco mode” if they adapt to similar techniques to improve efficiency.
The Task Manager Eco Mode is a feature that we hope to keep iterating on. As mentioned above, for the first iteration, we focused on managing the CPU allocation for a given app. For future iterations, we are exploring additional knobs to manage CPU resources, and similar techniques for other system resources.
If you have any suggestions or feedback about the Eco Mode feature, feel free to shoot our way by commenting down below or by using the Feedback Hub app and choose the “Desktop Environment / Task manager” feedback category.