Maximize Windows CPU Performance
David A. Kra
Abstract
This article explains how to make Windows run on x64 processors at high yet safe speeds and how to switch back to normal use.
Challenges:
Modern CPU's have dynamically changeable performance. The outermost range is set by the chip manufacturer. It is narrowed by the computer manufacturer based on the system's power and cooling capabilities. It is further narrowed and varied by the operating system's and sometimes by the deployer's choice of a "governor" module and its settings. At run time, the range is further narrowed by the power source, room temperature, ventilation, and usage as it changes subsecond by subsecond.
Windows provides one powerful utility program, powercfg, that is used to view, extract, clone, name, set the range of performance within multiple performance profiles, and activate them. The program has many subcommands that apply to many aspects of performance under different circumstances. We will use this command and some of its subcommands.
Summary of the overall process:
Steps 1 .. 8 are things to do once per system to create commands that can switch between maximum performance and normal:
As needed:
9. Use these Rig4TopSpeed andRig4NormalUse command scripts.
This article goes through the process for Windows, tested on Windows 10. It does not rely on anything that changed in recent or newer versions.
BIOS
Step 1. Use your system BIOS settings, if any, to set the system to run in High Performance mode.
Windows:
Use Windows Settings to select high performance.
Step 2. Use the Windows Settings or Control Panel Power settings to set the system to operate for performance, rather than "balanced" or "power savings."
For the next several steps:
Use the following steps to get your system set up and configured for both normal and top performance, but thereafter, when testing, you only use the last step to switch between normal and top performance.
Gather details about the system capabilities and its settings.
Step 3. List the power scheme GUID's and their names to the console and to a file.
powercfg /list > powercfg.list
powercfg /list
Example output:
Existing Power Schemes (* Active)
-----------------------------------
Power Scheme GUID: 381b4222-f694-41f0-9685-ff5bb260df2e (HP Recommended)
Power Scheme GUID: ef00c1c2-9434-47a9-8322-784683bbf8ed (Samsung High Performance) *
Note: Your scheme GUID's and descriptions will differ from mine.
Note: The Power Scheme with an asterisk at the end is the currently active Power Scheme.
Open powercfg.list in your text editor for convenience of copying and pasting.
Recommended by LinkedIn
Keep an administrative level command prompt window open to issue echo and powercfg commands.
Clone the existing settings
Step 4. Duplicate the active scheme two times, changing the first 8 digits of the GUID: once with the leading 8 digits replaced with 0's, and once with the leading 8 digits as 1's. There is nothing magic about these, they are just a convenience.
In the following, substitute the italics based on the specific value of your active scheme's GUID.
: Remember to use your active scheme's GUID, not the author's
powercfg /duplicatescheme ef00c1c2-9434-47a9-8322-784683bbf8ed 00000000-9434-47a9-8322-784683bbf8ed
powercfg /duplicatescheme ef00c1c2-9434-47a9-8322-784683bbf8ed 11111111-9434-47a9-8322-784683bbf8ed
Rename the clones of the settings
Step 5. Rename these duplicates, one for normal use and one for high performance
: Remember to use your GUID, not the author's
powercfg /changename 00000000-9434-47a9-8322-784683bbf8ed Rig4NormalUse "Clone of Original Power Scheme"
powercfg /changename 11111111-9434-47a9-8322-784683bbf8ed Rig4TopSpeed "Original Power Scheme except for minimum and maximum safe clock rate."
Gather the performance capabilities of the system
Step 6. Determine the speed settings to use.
We also get that information from powercfg:
powercfg /energy
It produces an energy-report.html output file in the current directory. Look at it with your web browser. The bottom of the file repeats some details for each logical processor core, including information such as:
Nominal Frequency (MHz) 1597
Maximum Performance Percentage 100
Lowest Performance Percentage 58
Lowest Throttle Percentage 6
For maximum performance, we will be using the Lowest and Maximum Performance Percentages.
Warning: Do not create settings where the minimum performance is greater than the "Lowest Performance Percentage." Someone will activate those settings and permanently damage the equipment due to overheating or running hot for a long time.
Set one performance profile clone to match the maximum performance setting.
Step 7. Set the new Rig4TopSpeed scheme to range from your report's Lowest Performance Percentage up to the Maximum Performance Percentage
The values can be found in the energy-report.html file, created in the previous step.
Each setting is made twice, once for when the computer is running on AC power and once for when it is running on battery.
: Remember to use your GUID that starts with 11111111, not the author's
: Remember to use your "Maximum Performance Percentage", not the author's
powercfg /setacvalueindex 11111111-9434-47a9-8322-784683bbf8ed SUB_PROCESSOR PROCTHROTTLEMAX 100
: Remember to use your "Lowest Performance Percentage", not the author's
powercfg /setacvalueindex 11111111-9434-47a9-8322-784683bbf8ed SUB_PROCESSOR PROCTHROTTLEMIN 58
: Remember to use your "Maximum Performance Percentage", not the author's
powercfg /setdcvalueindex 11111111-9434-47a9-8322-784683bbf8ed SUB_PROCESSOR PROCTHROTTLEMAX 100
: Remember to use your "Lowest Performance Percentage", not the author's
powercfg /setdcvalueindex 11111111-9434-47a9-8322-784683bbf8ed SUB_PROCESSOR PROCTHROTTLEMIN 58
Step 8. Create CMD files to activate each scheme:
: Remember to use your 00000000 and 111111 GUID's, not the author's
: create Rig4NormalUse.cmd
echo powercfg /setactive 00000000-9434-47a9-8322-784683bbf8ed >Rig4NormalUse.cmd
: create Rig4TopSpeed.cmd
echo powercfg /setactive 11111111-9434-47a9-8322-784683bbf8ed >Rig4TopSpeed.cmd
Use the scripts.
Step 9. Use the clock setting scripts
Warning: Before activating Rig4TopSpeed, make sure that the system's fans and airflow paths are fully functional and that the circuitry is not covered in dust and dirt.
Remember to use these CMD's from an elevated privilege command prompt.
: Run at high performance
Rig4TopSpeed.cmd
:Run the system as it had been.
Rig4NormalUse.cmd