Depending on the usage of your Windows 11/10 computer, you can configure processor scheduling, so that it gives you the best performance while using Programs or for Background Processes. You can make this adjustment easily via the Control Panel.
Windows automatically manages a number of foreground processes while a CPU is running. It has the built-in capability to manage the allocation of tasks. Windows do so by allotting a priority to tasks. Due to this reason, your computer is able to handle multiple processes on a single-core processor.
Optimize CPU Scheduling in Windows
In order to optimize your copy of Windows to meet your requirements, you can adjust the Processor by scheduling the task allocation which it deals with. Using these features, you can set up Windows, so that it is optimized to run programs or foreground services OR Background Services, like printing or backing up. At the same time, you work in another program, by adjusting Processor Scheduling. This way, Windows then knows how to distribute or allocate the available resources, to best perform these tasks. If you’re using Windows as the server, we recommend you adjust processor scheduling for background processes.
Processor Scheduling in Windows 11/10
To begin the process, type sysdm.cpl in Run box and hit Enter to open the System Properties. Select the Advanced tab and under Performance, click on Settings. In the Performance Options box, select the Advanced tab again. You will see a section Processor Scheduling.
There are 2 settings you can choose from:
- Adjust for best performance of Programs
- Adjust for best performance of Background Services.
This setting changes the DWORD value of Win32PrioritySeparation under the following registry hive:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl
Just in case you wish to know, the PriorityControl key defines the foreground vs. background priority differential. The possible default values for Win32PrioritySeparation REG_DWORD 0, 1, or 2, with the default being 0x2.
Optimize Windows for best performance for programs or background services
This default value specifies the priority to give to the application running in the foreground. This application receives more processor time relative to other applications running in the background, explains TechNet. The values here correlate to the following options in the Tasking dialog box: Value Meaning
- 0 Foreground and background applications equally responsive
- 1 Foreground application more responsive than background
- 2 Best foreground application response time.
Coming back, if you have NOT changed this setting at all, and you were to open the Windows Registry, you would see Win32PrioritySeparation have a value 2. These screenshots are from my Windows PC.
Now, if via the Control Panel, as shown above, you select Adjust for best performance of Background Services and click Apply, you will find that its sets Win32PrioritySeparation to 18 (decimal 24) for Background Services.
If you now select Adjust for best performance of Programs, you will find that it sets Win32PrioritySeparation to 26 (decimal 38) for Programs.
Using this feature, you can set up Windows, so that it is optimized to run programs or foreground services OR Background Services, like printing or backing up, while you work in another program, simply by adjusting Processor Scheduling. This way, Windows then knows how to distribute or allocate the available resources, to best perform these tasks.
If you are using a desktop, you may leave the setting at its default or choose Adjust for best performance of Programs. Let us know if this results in smoother, faster response time for your programs or foreground services.
TIP: You can also change Process Priority for running processes using the Command line.
However, if you use your PC as a Server or if you constantly have background services, such as printing or disk backup, that run while you work and you want them to respond faster, you can have Windows share processor resources equally between background and foreground programs by choosing the other option, ie. Adjust for best performance of Background Services.
So you see, Windows now gives you an easy way to set Processor Scheduling. If you are an advanced user and wish to set the values manually, you may use the follow the manual way in this post on how to get the best performance for programs or background services.
I got to the edit DWORD box, but I don’t understand when you say “via the Control Panel, as shown above, you select Adjust for best performance of Background Services and click Apply” and “If you now select Adjust for best performance of Programs…” Where are these selections in the control panel? I don’t see anything that says ‘Adjust for best performance of background services’ or ‘background services’ or ‘programs’ even just ‘adjust.’ Is it just that I put 18 if I want to optimize ‘Background Services’ or 26 if I want to optimize ‘Programs’ in the DWORD box?? And if so, what is the difference between the two? I use a lot of programs at once and sometimes my internet will crash or my computer will run slower, so that’s how I came upon your site.
Thank you.
The article reads: “If you now select Adjust for best performance of Programs, you will find that it sets Win32PrioritySeparation to 26 (decimal 38) for Programs.”
The control panel is shown in the 1st image. If you change the “Adjust the best performance of” setting, then you see the value in the registry changing.
For your problem: As you yourself run many programs, these are all foreground processes, so you should give them more CPU time than background processes. I.e. setting “… best performance for Programs”, or registry value 18.
But most probably this is, what you have now, anyway.
So to speed your PC up, you must search further what is your PC’s bottleneck or reason of slow-down.
I’m still not quite sure what you mean, but i did change the value to 18, so hopefully that helps – Thank you :)
What’s the difference between Win32PrioritySeparation & Win32PriorityControl? Can’t seem to find an answer to that question anywhere online. When you first install windows, if you edit the regestry you’ll see Win32PriorityControl. If you install a Windows 10 program that tweaks and peaks your system automatically, it’ll add Win32PrioritySeparation to the registry under the Win32PrioritySeperation.
I think Win32PriorityControl lets you boost or control the performance of the foreground apps. The PriorityControl registry key defines whether you want foreground or background apps priority. But you can also control it with Win32PrioritySeparation.