As you know, Microsoft has worked very well on its latest brainchild named Windows 7 and made many different innovations, one of which I want to tell. Especially true, I think it will be for owners of laptops and netbooks, but users of desktop systems can also get a profit.
As you know, the biggest innovation in the G7 (after the GUI) is the redesigned ACPI subsystem. Here and the normal support for multi-core systems, and power management devices, monitoring hardware, and much more, but one very interesting opportunity remains behind the scenes - we are talking about power consumption and core management of multi-core / multiprocessor systems.
Windows 7 allows you to manage processor power, as well as assign activity / idle kernel policies.
When working on multi-core processors, the threads rotate continuously between the cores and the system transfers the stream from the more loaded to the less loaded cores, which ensures a uniform load of all the cores, but also no less uniform power consumption, leads to performance loss and increased power consumption, and this affects the first queue on battery life. Today I will try to "restore justice" by regular OS facilities.
In Windows 7 and Windows 2008 R2, the function “Processor performance core parking” was implemented or, in our opinion, the “Kernel parking system”, which leaves the process running on the core on which it started, until it is fully completed. This approach allows you to get a more dynamic system and significantly reduce energy consumption.
Unlike normal operation, when processes are constantly transferred from one core to another, evenly loading the CPU, the parking system allows you to connect the cores as needed, trying to add all tasks to the minimum number of cores (ideally one).
Example: On a four-core processor, only one core will be used during an idle period, the rest will be parked and disconnected, and the rest of the cores will be connected during the load period.
And so, how to achieve such a feature?
First, add the following keys to the registry.
Windows Registry Editor Version 5.00
After that, go to
Control Panel -> Power Supply -> Power Plan Setting -> Change Advanced Power Settings -> Processor Power Management
and set the following parameter values:
- Minimum number of cores in idle state (Processor performance core parking min cores) - Set 25% for four core processors (one core) - or 50% for two core processors.
- Allow Power Reduction States (Allow Throttle States) - Enable.
- Disable CPU idle (Processor idle disable) - Enable idle state.
- Core overhead processor override - Disabled.
- Maximum number of cores in idle state (Processor performance core parking max cores) - Install 100% (use all cores)
After applying the new parameters, you can safely go to the "monitoring of resources" and admire the fact that most of the cores are disabled
That's all. We got the policy of using cores “as long as one core is enough for us (or how many you specify there) - we use one core”, save the battery, and also the system became more responsive.
UPD: I will share my test - my HP Pavilion dv8-1150er used to work from a fully charged battery - 3-3.5 hours, now it lasts for 4.5 hours.