Is there any reason to keep the power option on default "Balanced" instead of "high performance"?

Solution 1:

Short Answer With modern processor, with fast C6 (core/module power gating) capabilities, the difference in power consumption between the two power profiles is negligible. On the other hand, due to how different CPUs behave in power saving mode, you can lose considerable performance using the "balanced" profile. So I advise you to use the "high performance" profile, unless you have good reasons to use a different profile.

Long Answer The different power profiles typically tune the following three key areas:

  • CPU P states (frequency/voltage): in these states the CPU is active, albeit with different perfomance profiles. The P0 state typically represents the highest-performance (and higher-voltage) CPU state, with P1-2-3-4-etc. denoting lower point in the frequency/voltage curves. This means that P0 state has higher power consumption that, say, P4. A conservative power governor can force the CPU to stay longer in the lower-consumption (and lower-performance) CPU states, or even limiting its maximum frequency. Switching from a P state to another is quite fast (basically its a function of how fast a process can change its voltage/frequency);
  • CPU C states (idle/standby states): in these states the CPU or parts of it are powered down. So, while C0 denote a fully active CPU (nothing is sleeping), a C1 state denote a stopped clock, while a C1E a stopped clock and lower voltage, and so on. Finally, from C6 state afterward (Haswell can go down to C10) the CPU core is effectively 0V, so power consumption is very low (only external components, as L2/3 caches and the bus, need to be powered). Switching between C0 and the other states traditionally was quite slow and so the C1E+ power states were relegated to relatively long idle time. Nehalem (first i3/i5/i7 generation) radically changed that, so read below to understand how it works now;
  • External links frequency/lanes/etc: memory, QPI and PCI-E links can be power and lane gated, albeit in different manners.

How the information above affect the power governor/profile? Basically, a performance-optimize governor will fire up the clocks all the way up, burning more power. But when idling, even a performance governor will let the kernel issue the HALT instruction, which will push the CPU in the C1 states. After some more idling, the kernel will enter C2 states, and here the magic happens: CPU from Nehalem (or Bulldozer, for AMD) afterward internally remaps the C2 state into C6 - dropping voltage to 0. So, even if the power governor left the CPU at maximum clock (say, 3 GHz), the C6 state effectively override it, bringing frequency and voltage to 0. Some processor/PCU are even more aggressive, remapping C1E (which is automatically entered after some C1 time and before the kernel switch to C2) to C6. So, in a nutshell: a high-performance power governor let the CPU run at maximum speed, but modern CPUs automatically shut-down themselves when possible. This means that a performance governor will give high speed AND reasonable power consumption.

On the other hand, a "balanced" power governor will try to adjust to lower bound CPU frequency (in order to expoit the P-states savings). While with old CPU this is very reasonable, with modern CPU you have only marginally lower power. At the same time, you risks to lose considerable performance due to how the governor asks for lower frequency by default. Moreover, external links are generally slow to wake up after being put to sleep, so this is another speed-impairing risk of the balanced and conservative power options.

For these very reason, Windows 2008R2+ balanced power profile only very mildly try to save power - in many cases its behavior is comparable to the "high-performance" one.

Some interesting reads:

  1. http://www.anandtech.com/show/2919
  2. http://www.hardwaresecrets.com/article/Everything-You-Need-to-Know-About-the-CPU-C-States-Power-Saving-Modes/611/1