Get a really responsive computer and still save power and money!
My processor (an AMD Athlon X2 5600+ 2.8GHz) saves 17W when running at 35% of its
maximum frequency. And 17W is pretty much, so processor frequency scaling is a good
idea. But Windows' frequency scaling is a bit slow in raising the frequency
when needed. According to my tests on Windows Vista, after a heavy cpu load is started,
around 0.15 s before
the frequency is raised at all.
This means that small cpu bursts definitively feels slower compared to if the cpu was running at 100% frequency
all the time. This could be things like opening a picture, opening a new file
explorer or just about anything.
The problem in my opinion is that the
frequency scaling algorithm lacks user behaviour input and has no idea if a small cpu burst is
triggered by the user or by something else.
So what my program does is to bring user activity checks into the equation:
What it does is to change the system's power plan to one saving power when the
isnít touched for a specified
amount of time and then to a high performance plan when the mouse or keyboard is touched again.
This way you will get a really responsive system while saving power when the user is
The program does NOT install any patches in your system. It just switches power
plans exactly as if you would have done it yourself in the control panel.
Windows Vista and Windows 7/8
Use the "set high" and "set low" buttons to chose which power plans to use.
Then go to the control panel and adjust the
advanced settings of those plans to your liking.
The minimum processor state of the power plan used for the power save mode
should be something like 5% and for the one in
high performance mode it should be set to something like 100%.
(Mine is set to 85%):
You can easily create new power plans in the control panel if you want two plans
that are exactly the same except for the minimum processor state.
Boray POWer's system tray icon changes to a dimmed smaller version when
it goes into power save mode.
Use the Windows Resource Monitor to see if the frequency goes down:
You can also see in your control panel when it switches between power plans in
the power options.
Use the "set high" and "set low" buttons to chose which power plans to use.
what the different schemes does, read here.
Test your settings by opening the control panel's power option to check which
scheme is selected. The power
option window has to be closed and opened again to see if it was changed.
The CPU load setting
New in V1.6 is a cpu load setting:
Setting it to 100% disables it and Boray Power
will act just like previous versions. But if you for example don't want to switch
to low mode while
watching HD video or while doing ASIO sound recording, then this setting is the
answer. This is how it works:
An average cpu load value is measured and updated every 30 seconds. You can see this value
in the bottom left corner:
When you haven't touched the mouse and keyboard for your
specified idle time, Boray Power checks if the cpu load value is less or equal
to your setting. If it is, it switches to low mode. Otherwise it will
wait for your idle time all over.
Note that once in low mode, Boray Power won't switch up to high mode again if the
cpu load should go above your setting. It only looks at user activity then.
There is no shareware limitations in the program, but you agree to the following
terms by using the program:
The program is NOT FREE! It's Boray Music Ware: If you use the program, then
you have to buy at least one of my tunes at
boray.bandcamp.com. Look at it this way: You pay me for the program and you get a free song as a bonus.
(NET 2.0 is required.
Included by default in Windows 7 and Vista.)
Unzip the archive and put the boraypower folder where you want it.
Launch BorayPOWer.exe and change the settings to your liking.
If you want the program
to load at system startup (and you probably want that), then check the "Launch
at system startup" checkbox. Press Save to save
Note: Closing the window will terminate the program, so click on "Hide"
Particularly suited for Windows Vista - but still useful for
Windows 7 and 8.
(Added in July 2012:) Most graphs and numbers on this page are from Windows Vista,
but after some recent tests I now know that the frequency scaling was improved in Windows 7.
I strongly suspect that the slow raise in Vista's
frequency scaling is the
main reason why Vista got it's bad reputation of being a sluggish OS. So Boray Power
is extra useful on Vista, but still useful in Windows 7 and 8. Even though
Windows 8 as a whole is faster in raising the frequency when using the high performance
plan, it sometimes is slower than Vista as well.
Read more about this under "Boray's Automated Frequency REsponse Tester (BAFRET)"
below. Using BorayPower the way I propose will be more responsive than
any improved frequency scaling algorithm not taking user activity into account anyway.
Boray POWer in practise
My computer feels just like if it was in high performance mode all the time.
Still, it runs in power save mode most of the time.
If you previously had your minimum processor state set to a low value, you
can see BorayPOWer as a kind of turbo boost, while if you previously had it
set to a high value, you can see BorayPOWer as a power saver / heat reducer / fan noise reducer -
high computing speed.
Using BorayPOWer and setting the high performance mode to 100% and power save mode
to 35%, would compared
to running the cpu at 100% all the time, save me about $10 every year
according to my statistics, measurements and calculations.
BorayPOWer checks for user inactivity once every
second and then for user activity twenty times a second to be able to quickly
to high performance.
What it does is more or less to automate what I did with the data from the old
program (Boray CPU response tester). But here you get the most interesting values right away.
During a measuring period of 1.5 s, a small 3 ms test is performed 500 times. It's like a
cpu benchmark test so each of the 500 tests is given a score and the time for when each
sub test ended is also recorded. The top score is
regarded as "100% frequency" even if it in some cases isn't.
The "power save" plan in Windows 7 doesn't seem to reach the top frequency at all for
example. Anyway, "ending mean value" means the mean value for the last
201 scores of the measuring period. This is used for one of the ways to
calculate the response time.
There are three different ways of calculating the response time in this program:
A: The time it takes for the sub test score to reach the "ending mean value" (or rather
99.5% of it), B: The time it takes for the sub test score to reach 95% of the top score
or C: The time it takes for the sub test score to reach the mean value.
Each could be the most
interesting in different situations and power plans.
It's not single 3 ms test scores that are compared to the goal values but a mean value of the
three next tests, so this is why the "first" value displayed could be higher than
95% and it still takes time to reach 95%.
You will most likely get a different result every time you run the test,
so for this reason you can set the program on repeat for a while to make maybe 100 complete
and show you mean values of all of the tests.
Here follows my results:
The Vista and Windows 8 tests were made on the same machine (AMD Athlon X2 5600+ 2.8GHz)
while the Windows 7 tests were made on an Intel Pentium Dual Core P6200 2.13 GHz.
Total average of all three A B C types in milliseconds.
(There are detailed data for this graph further down on the page.)
Since BAFRET V1.2 you also get efficiency values in percentage:
Total efficiency is the average of all scores in relation to the top scores. For
the whole measuring period of 1.5 s.
Multitasking efficiency is the mean of the ending mean values (the last 603 milliseconds).
Here the frequency has (hopefully) reached 100% and we get a value of how efficiently
a program can utilize the cpu.
First 200 ms efficiency: This is a different way of measuring the responsiveness of
the computer. Instead of measuring a time, we measure how much work the cpu can
do over 200 ms going from idle to busy.
"My Vista + BorayPower while using the computer" is my own setup where "high perormance"
85-100 is used as the high mode in BorayPower. I simply had BAFRET running while making
these graphs etc with the following programs running: IE9, Foobar2000, PSPad, Excel,
Paint.Net, WS_FTP95, Windows Live Mail, ALM, Insert This, Something Is Ready,
WakeUp, Boray Power, Sim Mail Online, Windows Live Messenger and Microsoft Security
Here follows detailed data (that's the first graph is based on).
NOTE: The "A" values are within parenthesis because of a bug in BAFRET V1.0 which made all
"ending mean values" except for those of the first round slightly incorrect (0.5%).
vista 32 high performance 5-100
Total results after 151 rounds:
(A: Mean = 159,774834437086, Min = 3, Max = 267)
B: Mean = 158,543046357616, Min = 0, Max = 267
C: Mean = 158,543046357616, Min = 3, Max = 267
Total mean of all three types: 158,953642384106 milliseconds.
vista 32 balanced 5-100
Total results after 162 rounds:
(A: Mean = 163,604938271605, Min = 111, Max = 276)
B: Mean = 161,845679012346, Min = 111, Max = 267
C: Mean = 161,827160493827, Min = 111, Max = 267
Total mean of all three types: 162,425925925926 milliseconds.
vista 32 power save 5-100
Total results after 172 rounds:
(A: Mean = 215,529069767442, Min = 96, Max = 907)
B: Mean = 223,546511627907, Min = 111, Max = 1469
C: Mean = 200,924418604651, Min = 96, Max = 733
Total mean of all three types: 213,333333333333 milliseconds.
Windows 7 64 high performance 0-100
Total results after 155 rounds:
(A: Mean = 18,8, Min = 3, Max = 36)
B: Mean = 15,0645161290323, Min = 0, Max = 18
C: Mean = 18,3548387096774, Min = 3, Max = 30
Total mean of all three types: 17,4064516129032 milliseconds.
Windows 7 64 balanced 0-100
Total results after 128 rounds:
(A: Mean = 40,796875, Min = 3, Max = 111)
B: Mean = 40,1640625, Min = 0, Max = 111
C: Mean = 40,5625, Min = 0, Max = 111
Total mean of all three types: 40,5078125 milliseconds.
Windows 7 64 power save 0-100
NOTE: Top score was only 62% of the high performance and balanced top
score meaning the cpu never reached over 62% of maximum frequency.
Total results after 107 rounds:
(A: Mean = 810,289719626168, Min = 0, Max = 1446)
B: Mean = 843,196261682243, Min = 0, Max = 1449
C: Mean = 632,710280373832, Min = 0, Max = 1413
Total mean of all three types: 762,065420560748 milliseconds.
win 8 64 high performance 5-100
Total results after 205 rounds:
(A: Mean = 41,9609756097561, Min = 0, Max = 639)
B: Mean = 36,3951219512195, Min = 0, Max = 267
C: Mean = 38,3707317073171, Min = 0, Max = 267
Total mean of all three types: 38,9089430894309 milliseconds.
win 8 64 balanced 5-100
Total results after 200 rounds:
(A: Mean = 188,39, Min = 3, Max = 1090)
B: Mean = 147,67, Min = 3, Max = 267
C: Mean = 165,73, Min = 3, Max = 573
Total mean of all three types: 167,263333333333 milliseconds.
win 8 64 power save 5-100
Total results after 251 rounds:
(A: Mean = 732,876494023904, Min = 0, Max = 1463)
B: Mean = 629,95219123506, Min = 0, Max = 1469
C: Mean = 286,581673306773, Min = 0, Max = 531
Total mean of all three types: 549,803452855246 milliseconds.
Linux Mint 13 64 on-demand (BAFRET V1.2)
Total results after 100 rounds:
A: Mean = 142,8, Min = 43, Max = 444
B: Mean = 139,59, Min = 43, Max = 441
C: Mean = 140,97, Min = 43, Max = 441
Total mean of all three types: 141,12 milliseconds.
Total efficiency (mean of mean values): 96,4221265574553 %
Multitasking efficiency (mean of ending mean values): 97,9599174821121 %
First 200 ms efficiency: 86,4419205707751 %
Open Suse 12.1 64
Total results after 176 rounds:
(A: Mean = 511,869318181818, Min = 0, Max = 1468)
B: Mean = 476,471590909091, Min = 0, Max = 1468
C: Mean = 464,613636363636, Min = 0, Max = 1465
Total mean of all three types: 484,318181818182 milliseconds.
In OpenSUSE there is no gui for changing power plan. This is from
developers' explanation of why: "For the 'performance' governor, users won't even notice
the performance gain. Modern CPUs and the kernel's CPUFreq implementation are able
to switch frequencies very fast."
... And 0.5 s is very fast? Right...
(To run the program on Linux you need the packages mono-core, mono-winforms and mono-basic installed.
You start it with "mono BAFRET.exe")
Anyway, here is something else interesting I've discovered: Windows power plans
react more quickly if you have some programs running. At least Vista and W8 does.
In the tests above I
run the tests on a totally idle system. In the two tests below I had some programs
Opera displaying a facebook profile, foobar playing some mp3s, PSPad displaying
a text file, the power plan settings and Microsoft live messenger.
vista 32 high performance 5-100 + some background tasks:
Total results after 151 rounds:
(A: Mean = 156,675496688742, Min = 93, Max = 471)
B: Mean = 147,456953642384, Min = 93, Max = 272
C: Mean = 140,099337748344, Min = 61, Max = 192
Total mean of all three types: 148,077262693157 milliseconds.
win 8 high performance 5-100 + background tasks
Total results after 101 rounds:
(A: Mean = 13,1485148514851, Min = 0, Max = 93)
B: Mean = 7,28712871287129, Min = 0, Max = 93
C: Mean = 11,7920792079208, Min = 0, Max = 93
Total mean of all three types: 10,7425742574257 milliseconds.
Win 7 high performance 0-100 + some other background tasks (Firefox, Win Media player).
Total results after 389 rounds:
(A: Mean = 25,6966580976864, Min = 0, Max = 111)
B: Mean = 12,5244215938303, Min = 0, Max = 24
C: Mean = 20,6143958868895, Min = 0, Max = 96
Total mean of all three types: 19,6118251928021 milliseconds.
Maybe it isn't that strange that some background programs decreases the response
time. The cpu would get then get a higher load during the test and the system would
increase the frequency earlier. Stranger is that Win 7's result got worse. Maybe
it's a matter of balance; some background tasks makes your frequency scaling snappier
while too much makes the computer slower instead. Well my guess is as good as yours.
I must say I'm pretty impressed with Windows 7's and 8's "high performance" power
plan. It still doesn't take user activity checks into the equation though. I wonder why.
I have the pre release of Windows 8 installed on one drive, but still I end up using
When running the cpu at 100% frequency (with the use of Boray Power), Vista and Win 8 is equally fast.
And Windows 8 is actually pretty messed up with the phone gui nonsense anyway.
Computer geek note: A Commodore machine was used in the development of BAFRET:
one of my two Commodore SR-1800 calculators.
With the "time limited bursts" test, you set an amount of time in milliseconds, and
the program then runs a test for that
amount of time and then delivers a score. The score is based on how much work that
was done per millisecond during the test. So for a static cpu frequency and no
other load, the score should be about the same regardless of the chosen time.
Here are some results from my own tests on Vista:
In this test I'm using the "1x" button and different length bursts to test different
"High Performance" is set to 100% frequency both min and max values.
HP 78-100 is High Performance but with the minimum frequency set to 78%.
HP 35-100 is High Performance but with the minimum frequency set to 35%.
Power save has the same values (35-100), but as you can see, the frequency is
raised slower than with High performance even with the same min and max values.
In the following tests I also used the time limited bursts, but here I set
the burst time
to 10 ms and then pressed the "x 200" button. This means the 10 ms burst is done
uninterruptedly 200 times, in other words for 2 seconds. The 200
was then copied into Excel to do the graphs. This way you can see exactly how
the frequency is changed during two seconds of uninterrupted cpu load:
High performance power plan with maximum and minimum processor states set to 100%.
No surprises there.
High performance power plan with minimum processor states set to 35%.
Here it took 0.18 s to reach 100%.
Balanced power plan with minimum processor states set to 35%.
Looks the same as the high performance plan.
Power save plan with maximum set to 100 and minimum to 35. I guess it does
what it's supposed to do; saving power.
This is BorayPOWer waking up from Power Save (min 35) to High Performance (min 100).
It's waking up from my mouse click pressing the test button. As you can see, the
switching of power plan doesn't slow it down. Rather the opposite.
High Performance with minimum state set to 85.
BorayPOWer waking up from Power save (min 35) to High Performance (min 85).
Out of curiosity I also run the program on Ubuntu to try all the power plans there.
Here is the "On demand" power plan compared to "Balanced" on Windows. As you can see,
Windows isn't slow in comparison. BorayPOWer just improves the responsiveness
With the "Static bursts" tests, the program simply executes a specified amount of
work and then says how long it took. Here are my results with these tests:
Power Save has minimum value 35,
High Performance; minimum value 100,
On Wake-up: Exactly when BorayPOWer wakes up
from Power Save to High Performance. The pressing of the test button (having the button
active and then pressing enter) triggers the power plan switch.
HP2: is High Performance with minimum value 35.
Bal: is "Balanced" power plan with minimum value set to 35.
HP2 Wakeup: is the same as Wake-up but waking up from HP2 instead of from Power Save.
The Average button: To get good measurements, test the same thing a number
of times. Then mark the output text of those tests and press the average button.
An average value of the numbers in the selected text will then be shown.
Boray POWer History
V1.0 2011-07-05 Initial release
V1.1 2011-07-08 Switches back to original power plan when pressing quit button. Adaptions for higher DPI screens.
V1.2 2011-07-09 Power plan guid/name in the settings file for making the program work with Windows XP.
V1.3 2011-07-11 You can now choose your power plans in the program instead of editing the settings file manually.
Bugfix: The right power plan wasn't selected at startup.
V1.3.1 2011-07-14 The settings are now always loaded from and saved to the program folder
regardless of the current directory when started. (Only of importance when started
from the command prompt).
Added the option to save stats to BorayPOW_stats.txt. If you turn it on, you can
copy the text and paste it
into a spreadsheet program to analyze your power consumption and/or your
user behaviour. The data is saved when the program is terminated and does not
introduce any overhead to the program's operation.
The program now only requires .NET 2.0 instead of .NET 3.5. The window is now
always topmost (because it didn't pop up sometimes when clicking the task bar icon.)
Easier to setup the program to launch at system startup. Just check the new checkbox,
save the settings and a file shortcut will be created in the Windows Startup folder. Uncheck it
and it will be removed. Note that this is a completely different
startup method than the one suggested to use before (the Windows Task Scheduler).
The window is now
NOT topmost. The popup problem was fixed in another way.
The cpu load setting was added. And as if Boray Power wasn't already lightweight - it's now
even more so: It now uses only 0.32 MHz on one core in high mode (1.29 MHz before)
and in low mode it uses 1.17 MHz (13.5 MHz before). The previous version
of Boray Power was
downloaded 4685 times but nobody at all has payed yet! Boray Power is NOT FREE!
So come on guys!
The efficiency was improved even more: It now only uses 0.25 MHz in high mode and 0.60
MHz in low mode!
I just updated the web address to my music.
More programs by Boray
If you like this program, you will likely like some more of my programs.