Tip
Before proceeding, it is recommended to familiarize yourself with Process Governor UI.
- Rule Priority
- Core Affinity Inheritance in Windows
- Common Rule Usage Tips
When applying rules, the program first checks service rules and then moves to process rules. This means that if a service matches a rule, it will take precedence. If no matching service rule is found, the program then applies the first matching process rule.
Important
Only the first matching rule is applied, so the order of the rules in the configuration is important.
In Windows, child processes inherit the core affinity settings from their parent processes. For example, if the
parent process (explorer.exe
) is restricted to cores 0 and 1, any process launched by it, for example, app.exe
,
will inherit this restriction and be limited to those same cores, unless the application itself or the user changes the
core affinity (for example, via Task Manager or Process Governor).
This behavior means you should carefully configure rules, especially when using wildcard rules like *
, which apply to
all processes.
To ignore a process without applying any specific settings:
- Go to the Process Rules tab.
- Add a new rule.
- Set Process Selector to the name of the process you want to ignore (e.g.,
someprocess.exe
). - Leave all other fields unchanged.
This will ensure that the process is excluded from any modifications by the governor.
To apply a rule to all processes:
- Go to the Process Rules tab.
- Add a new rule.
- Set Process Selector to
*
to match all processes (the*
symbol acts as a wildcard, matching any sequence of characters in the process name). - Configure the desired settings (e.g., affinity, priority).
- Place this rule at the bottom of the list to allow more specific rules to take precedence.
To limit a process to physical CPU cores and disable the use of hyperthreaded (logical) cores:
- Go to the Process Rules tab.
- Add a new rule.
- Set Process Selector to the target process.
- Set Affinity to even-numbered cores only (e.g.,
0;2;4;6;8;10;12;14
).
This will prevent the process from using hyperthreaded cores, which can be beneficial for certain workloads.
For some applications, especially games, applying settings like core affinity immediately upon startup can cause issues. Adding a delay ensures the process has time to initialize before adjustments are applied.
- Go to the Process Rules tab.
- Add a new rule.
- Set Process Selector to the game executable (e.g.,
bg3.exe
). - Set Affinity as needed (e.g.,
0-15
). - Set a Delay of around 10 seconds to prevent early changes during startup.
This helps avoid potential problems like sound not working.
Older or poorly optimized games that don’t efficiently use multiple cores can stutter if run with the default core affinity settings. To improve performance:
- Go to the Process Rules tab.
- Add a new rule.
- Set Process Selector to the game process.
- Set Priority to a higher level (e.g.,
AboveNormal
orHigh
). - Adjust the Affinity to exclude CPU core 0 (e.g.,
1-15
).
This setup can help distribute the load more effectively and reduce stuttering.
To address audio crackling or stuttering under high CPU load, it’s recommended to increase the priority of audio-related processes and services to ensure they have sufficient CPU resources.
- Go to the Process Rules tab.
- Add a new rule for each audio-related process.
- Set Process Selector to the name of the audio process (e.g.,
audiodg.exe
,voicemeeter8x64.exe
). - Set Priority to
Realtime
orHigh
depending on the process's importance.
- Go to the Service Rules tab.
- Add a new rule for each audio-related service.
- Set Service Selector to the service name (e.g.,
AudioSrv
,AudioEndpointBuilder
). - Set Priority to
Realtime
orHigh
.
This approach prioritizes audio processing over other tasks, preventing interruptions in sound quality during heavy CPU usage.
For all previously added rules related to audio processes, it is recommended to configure Affinity to assign specific CPU cores dedicated to audio processing tasks. This helps ensure that audio processes have sufficient CPU resources, minimizing interference from other tasks.
For example, if you have a 16-thread processor with 8 cores, you can allocate the last 2 cores (threads 12-15) for audio tasks, while the first 6 cores (threads 0-11) can be reserved for other applications.
-
For each previously configured audio process rule:
- Set Affinity to the last 2 cores (e.g., threads 12-15) for handling audio processing tasks.
-
After configuring the audio processes, add a new rule for all other processes:
- Set Process Selector to
*
. - Set Affinity to allocate the remaining CPU cores (e.g., threads 0-11) for non-audio tasks.
- Important: This rule must be placed last in the rule list, as it serves as a fallback for any processes that are not explicitly defined in previous rules.
- Set Process Selector to
Warning
Avoid modifying the Affinity for audio services like AudioSrv or AudioEndpointBuilder, as this may worsen performance. Adjusting the priority for these services is usually sufficient to resolve audio issues such as crackling and stuttering.
This configuration helps distribute the CPU load, isolating audio processes to specific cores, ensuring smoother and more stable sound under high system load.