Main Window
The main window consists of a CPU utilization and system responsiveness graph, a list of running processes, and a list of recent actions (log). The configuration of Process Lasso is made easy to tweak through the menu system. In the main menu you’ll find all the general configuration options. Right-clicking on a process, or multiple processes, shows available operations on those process(es).


Parked CPU cores shown in grey

The Graph
The Process Lasso graph shows a calculation of system responsiveness and overall CPU utilization. The system responsiveness is calculated using a proprietary algorithm that measures the latency in the user interface (windowing) subsystem.
Highlighted portions of the graph indicate that a ProBalance process restraint occurred during that period. This can help you see the impact of Process Lasso on system responsiveness. Note that the highlighted areas of the graph may not be 100% accurate in their timing, but are somewhere very close. As future versions come the accuracy of the highlighted area will improve.
Highlighted ProBalance events
During periods when ProBalance takes action to ensure your system responsiveness remains high despite a spike in CPU use, the graph will be highlighted. The log can be referenced to see what actions were taken.

Note these colors are now reversed!
Hovering over a highlight event will show you the process(es) adjusted (in priority or CPU affinity) at that time.

CPU history of selected process(es)
With Process Lasso you can see the individual CPU history of process(es) you select in the process list. The CPU utilization history of all processes currently selected (highlighted) in the process list is drawn as a smaller white line on the graph. For example, the user below selected ‘devenv.exe’ and its CPU history was drawn onto the graph as a white line.

RAM Load Graph
New in v4 – A new RAM Load graph has been added to the right, even though the RAM load history is indicated on the main graph. This new graph is intended to give you a quick read on the RAM load. You can hide it by simply clicking it, or by using the View menu to toggle its visibility.

The All Processes Tab
The Process List shows running processes and allows for easy rule creation. You can right click on any process, or on multiple processes, to get a context menu of available options. Among many other things, the options include setting current priorities and affinities, as well as default priorities and affinities.
Single process context menu

The context menu when multiple processes are selected is different than when a single process is selected, since not all operations can be performed on multiple processes.
Multiple process context menu

As you can see, with Process Lasso you can select MULTIPLE processes at once and operate on them. Not all functions are available when multiple processes are selected, but most common ones are. This includes process rule creation.
Selecting which columns to show
You can select which columns you want visible by right-clicking on the ‘All processes’ tab, right-clicking on the list header, or using the ‘View / Select Process Columns’ menu. In addition, you can resize the columns (at their headers) and change the column ordering by dragging the column headers. These view changes will be remembered by Process Lasso. The same applies for the ‘Active processes’ tab. Note that right-clicking the ‘Active processes’ tab allows for setting process information shown in that column. Information in the ‘Active processes’ tab is more limited than information in the ‘All processes’ tab. However, double clicking on any process in the ‘Active processes’ tab will take you to its entry in hte ‘All processes’ tab.

The ‘Rules’ column of the GUI gives a summary of rules that match each process.
Rules
Format: [X][L][_][x][W][g][K][#n][d|D][e][p][Mx][t][s][iX][<..<<<<][RHANBI][0-63]
Character(s) |
Meaning |
X |
Excluded from ProBalance |
L |
CPU Limited |
_ |
Instance Balanced |
W |
A watchdog rule is set |
g |
Process induces Performance Mode |
K |
Keep running (restart if terminates) |
#n |
Instance count limit of n, e.g. #2 for a limit of 2 |
d|D |
Prevents sleep of PC, or PC and display, respectively |
x |
Excluded from foreground boosting |
e |
IdleSaver is disabled when this process is running |
p |
Process will cause the PC to enter a particular Power Profile |
Mx |
Where ‘x’ is the persistent memory priority set for this process. |
t |
Excluded from SmartTrim |
R |
Persistent priority class: Real time |
H |
Persistent priority class: Highest |
A |
Persistent priority class: Above normal |
N |
Persistent priority class: Normal |
B |
Persistent priority class: Below normal |
I |
Persistent priority class: Idle |
ih |
Persistent I/O priority class: High |
in |
Persistent I/O priority class: Normal |
il |
Persistent I/O priority class: Low |
ib |
Persistent I/O priority class: Very Low (background) |
0-63 |
Persistent CPU affinity, i.e. ‘0-2,3,5’ for cores 0,1,2,3,5 |
< |
Hard Throttle level lowest |
<< |
Hard Throttle level low |
<<< |
Hard Throttle level moderate |
<<<< |
Hard Throttle level high |
The Active Processes Tab
Selecting which columns to show
You can select which columns you want visible in the ‘Active Processes’ tab the same way you can in the ‘All Processes’ tab. by right-clicking on the ‘Active processes’ tab or by right-clicking on the list header. In addition, you can resize the columns (at their headers) and change the column ordering by dragging the column headers. These view changes will be remembered by Process Lasso. Double clicking on any process in the ‘Active processes’ tab will take you to its entry in the ‘All processes’ tab, where additional information is available.

Active Processes Tab

The Active Processes tab shows only processes that are actively utilizing the system CPU(s). It displays basic information about them, and a horizontal bar graph to visually depict their active CPU utilization.
Right-clicking on one or more of the processes in the ‘Active Processes’ list show the same context menu as found in the ‘All Processes’ tab.
Double-clicking on a process in the ‘Active Processes’ list will find the corresponding process in the ‘All Processes’ tab and make it visible.
Double clicking a process in the active processes view
You can double click a process in the ‘Active processes’ tab to go to that process in the ‘All processes’ tab, where extended information is available.

Single process context menu
Right-clicking on a process in the ‘Active Processes’ tab shows the same context menu as in the ‘All processes’ tab. You can perform any available operation on the process.

The context menu when multiple processes are selected is different than when a single process is selected, since not all operations can be performed on multiple processes.
Multiple process context menu
Just as in the ‘All processes’ tab, you can select multiple processes and right-click on them to perform an operation on all of them.

Keyboard Shortcuts
- DEL
- Terminate selected processes (forcible)
- CTRL+A
- Select All processes in current view
Configuration Dialogs
CPU Limiter
First, it is important to note that the CPU Limiter is not a magic bullet to reduce CPU utilization without consequence. CPU utilization occurs because an application or service is doing something. If you are able, you should address the cause of the CPU utilization, rather than arbitrarily limiting it. Our ProBalance technology does wonders for system responsiveness during high loads without actually reducing CPU use.
However, in some circumstances, it is desirable to reduce a process’s CPU use to achieve more fair access to system resources. This is common in Remote Desktop Services (RDS) environments, or when non-critical background processes are consuming too large a share of system resources. In those cases, the CPU Limiter is a great option.
The CPU Limiter can dynamically reduce the CPU use of running processes by temporarily constraining their CPU affinity. For instance, on a 4 CPU core system, constraining the CPU affinity by 1 core limits the total possible CPU utilization of that process to 75%.

The user creates rules telling the CPU Limiter which processes to act on, and when. When a process match exceeds a threshold over some period, it is limited for the configured duration. Like other rules in Process Lasso, process matches can include wildcards and user names.

The CPU cores removed from a process’s CPU affinity are selected randomly from the set of its original CPU affinity. Once the act-for duration elapses, the original CPU affinity is restored.
While one could accomplish a similar function with a combination of Watchdog rules, the CPU Limiter is easier to use. Using the Watchdog for the same effect would require two rules, one to constrain the CPU affinity when over threshold, and another to restore the original CPU affinity. Finally, the Watchdog rules are limited to statically defined CPU affinities.
The act-for duration can be set to 0 to indicate an indefinite change to a process’s CPU affinity.
Example Use Case
Let’s say you have an issue with Chrome sometimes consuming all available CPU cycles, and you don’t want to set a static CPU affinity that restricts it from short bursts of 100% utilization. You might create a CPU Limiter rule such as:
chrome.exe, after 15 seconds over 30%, restrict by 2 cores for 30 seconds
If a specific user is problematic, you can append that user name to the process match:
chrome.exe:johnny
Wildcards are also supported in process and user names, such as:
fire*.exe:user*
If no user is specified, then any user matches.
This feature supports Regular Expressions for more complex and precise matching.
Demo video of the CPU Limiter
Instance Balancer
The Instance Balancer allows you to indicate how CPU cores should be assigned to an application with multiple instances. You can evenly spread the instances across the CPU cores, or set a specific CPU core count for each instance. When there are more instances than allotted CPU cores, instances are ‘stacked’ in a round-robin manner. When the instance count of managed applications changes by new process creation or termination, a re-balance occurs.
This feature supports Regular Expressions for more complex and precise matching.

Demo video of the Instance Balancer
ProBalance Options

ProBalance advanced options let you control if and when ProBalance should act.
ProBalance Exclusions

This feature supports Regular Expressions for more complex and precise matching.
Persistent Priority Classes
Persistent CPU Priority Classes are available to keep applications running at specific priorities.
Note that use of above-normal priority classes is generally ineffectual at improving performance (it won’t make an app go faster). Instead, it is recommended to target problematic background processes with Below Normal and Idle priority classes to limit their impact on performance sensitive applications. This is what ProBalance does automatically.
Priority classes available in Windows are:
- Real-Time
- High
- Above Normal
- Normal
- Below Normal
- Idle

Persistent CPU Affinities

Auto-Terminate List
The processes listed here will get terminated when they are found to be running. Process Lasso can not (at present) actually prevent them from trying to start up, it just immediately terminates them when it finds them running.

Process Watchdog
The process watchdog (advanced rules) allows for you to take an action on a process when it exceeds a certain amount of CPU or Memory. You can specify actions such as Restart, Terminate, Log, Execute (external), or Change Affinity. With both memory and CPU triggers, you can set a time the process must exceed this threshold before action is taken.
The Process Watchdog can be found at the menu item ‘Options / Control / Configure Process Watchdog …‘.

There are several actions and trigger types.
Triggers:
Actions:
- Change CPU Affinity
- Execute
- Log Occurrence
- Restart Process
- Set CPU Priority Class
- Set I/O Priority Class
- Stop Processing Rules
- Terminate Process
- Trim Virtual Memory
Options:
- Divide CPU % thresholds by system CPU count
Divide CPU thresholds by the total logical core count. For example, 3200% could be given, and when divided by 64 cores, would be a threshold of 50% of total CPU use. This allows for more precision on high core count systems.
This feature supports Regular Expressions for more complex and precise matching.
Instance Count Limits
The user can limit the number of instances of a process allowed to be running at the same time (per user session) with this dialog. New instances of processes will be terminated if they match a pattern here and the number of instances is already equal to, or greater than, the instance count limit.

Keep Running Processes
The user can ensure certain processes are kept running by entering in this dialog. This way, they can restart on crash, or restart if they become unresponsive. You can set this by right-clicking on a process, using the ‘Keep process running’, or by using application menu option at ‘Options / Configure Keep running processes …’.

NOTE: Processes are always launched unelevated. You can change this behavior by creating a registry value in HKEY_LOCAL_MACHINE\Software\ProcessLasso named “AllowElevatedChildren” with a DWORD type and value of 1 (get .REG file here). By default, this registry key can only be written by elevated administrators. This will still not allow a process to be launched with rights in excess of the governor. Therefore, if the governor is running in a limited user context, any child process will inherit only that context. When the governor is running as a service, launches are prohibited, and the Keep Running function is disabled.
IdleSaver
IdleSaver allows the user to set a power plan for use when the system is Idle. This allows the user to run in a high performance power plan while active, but without completely sacrifice energy savings by switching to a more conservative power plan when the user is idle.

SmartTrim
SmartTrim is an intelligent memory management algorithm that can trim working sets on a per-process basis when thresholds are reached, and can also clear the system standby list (cache).

Performance Mode
The user can designate certain processes to ‘Induce Performance Mode’. This causes Process Lasso to enter a specific power profile, Bitsum Highest Performance by default, when those applications are run. In this way, it is similar to the ‘Application Power Profiles’ feature. However, Performance Mode also makes certain adjustments to ProBalance in an effort to ensure the performance-critical application runs without interference from background processes. Users designate a ‘High Performance’ process by right-clicking on a process and checking the ‘Induce Performance Mode’ menu item, or by using application menu option at ‘Options / Power / Performance Mode / Designate High Performance processes …’.

Induce Performance Mode process context menu item

Users can select an alternate power plan to use with Performance Mode, instead of the default of Bitsum Highest Performance.

Select alternate power plan for Performance Mode
Anti-sleep Processes
The user can prevent the PC and display from entering a sleep or hibernate state by adding them to the ‘anti-sleep’ list. This can be done by right-clicking on a process, using the ‘When running’ menu, or by using application menu option at ‘Options / Configure Anti-Sleep processes …’.

Application Power Profiles
The user can create rules to that cause the system to enter the chosen power profile when specified processes are running. When they terminate, the system is returned to the previous power profile. This lets users target their system power profile for currently running applications. You can do this by right-clicking on a process, using the ‘Application power profile‘ submenu, or by the menu option at ‘Options / Power / Configure application power profiles …‘.
