[ main index ]
There has been some understandable user confusion about Process Lasso, so first let's clear up a few common misconceptions. If your question isn't answered here, then see the FAQ below.Misconception #1: Process Lasso is yet another super-charged task manager
NO! Process Lasso is NOT a task manager at all. It has some task management capabilities, but its not meant to replace a task manager. Its meant to act in the background, automatically enforcing rules upon processes in order to improve your system responsiveness (or for whatever other purpose you desire).Misconception #2: A user needs to set default priorities on their processes to rank their importance.
NO, PLEASE DON'T DO THIS. The idea isn't to reprioritize all your processes, rating them in importance to you. Doing that is risky and harmful to your PC performance. Just let Process Lasso do its job, UNLESS you know what you are doing.Misconception #3: Process Lasso is only for older computers
It may be true that older computers get the most benefit from Process Lasso, but Process Lasso is helpful to even brand new 'top of the line' PCs. Additionally, its extra features are quite handy for anyone (such as anti-sleep processes and High Performance Power processes). Those with a lot of CPU cores may also enjoy the default CPU affinty feature, where they can limit programs to specific CPUs - keeping the others free for use by other procesess.Misconception #4: Process Lasso makes my CPU work less hard, or harder
Process Lasso's ProBalance causes the CPU to allocate its computational time differently. The same amount of computation work is always done regardless of any priority or affinity adjustments (assuming there is a set amount of work to be done, and not some infinite amount).Misconception #5: RAISING a software's priority class makes it faster, or fixes responsiveness issues
As we explain elsewhere, you should *not* raise the priority class. Windows *already* does 'foreground boosting', something also explained elsewhere. ProBalance works by LOWERING the priority of select background processes in high loads, NOT raising priorities. THAT is a much more effective mechanism of maintaining responsiveness during high CPU loads.
First, its worth noting that there's a real problem here with jargon. Non-technical users may seem overwhelmed. I'll try to switch between technical jargon and layman terms to help give some contextual reference that may aid in deducing the meaning of jargon.
If the question you have isn't here, or isn't answered well enough here, send an email to Bitsum Technologies.
Yes, home and academic users can freely use it for as long as they want. However, after the product has been installed a while, a couple features are disabled and some nags are shown to encourage the user to upgrade to Process Lasso Pro. These nags are tolerable, as they are meant to be reminders, not to annoy. Even after this point, the software is still quite usable and not by any means crippled. These actions help us to continue to publish a free edition. We encourage you to give Process Lasso a try. It may be just what you need, and the Pro build may be well worth the price of a couple cheese burgers.
The differences are described here.
Please see the 'Help' menu or About box. If you do not see options to Activate there, then the product is already activated.
When you run a program on your computer, it creates a process. Every program you have running is represented by a process. When you have multiple copies of a program running, it has multiple processes. For instance, if you were to run Microsoft Word, it would create a process named 'msword.exe'. Each process has its own memory and threads (you can think of threads as tasks for your CPU to execute). Furthermore, each process is isolated from other processes, so that a crash in one program won't cause a crash in another.
So you want to keep a process limited to using a certain amount of CPU time or percent of available total CPU time? If you have a single core processor, forget it. Although advanced options like Process Lasso's Hard Throttling are available, they are not recommended at all! There is no way to 'toss out' instructions that need executed. In a best case scenario, you can suspend the threads of a process for a short period of time before resuming them. However, they would then continue to work on whatever they didn't get finished before being suspended. Further, this is very unnatural behavior and can cause all sorts of problems. Applications simply are not designed to be paused and resumed, and it does not even end up reducing the overall workload that *must* be accomplished.
Fortunately, there IS something you can do. If you have a multicore CPU, you can limiting a process's CPU affinity to specific cores. This limits the amount of CPU resources available to a process. On a quad core system, if you were to limit a process to a single core, you would limit it to approximately 25% of the total CPU use at any given time. When changing affinities, to be careful, apply them selectively, and test your changes. Some system components may respond badly to CPU affinity changes, though most user mode applications do fine.
There is a setting that EXCLUDES the active foreground process (the one you are using, that has keyboard and mouse focus) from ProBalance restraint. It is in Options / ProBalance options. It could be the application was not restrained because it was in the foreground? If this is NOT the case and the process WAS lowered in priority, then there is some other bottleneck that Process Lasso can not address.
You may also wish to try a Default Priority of Below Normal for the offending process. This is often very successful, safe, and effective. It does not typically diminish performance of the application UNLESS you have a lot of other stuff going on as well (a lot of contention for the CPU).
During our real-world research, we discovered that some anti-virus software has tamper detection mechanisms that are 'triggered' by simply 'looking at' their process. Yes, simply looking at them - something I've verified with their own engineers. We are working on some work-arounds so that these are listed again for v6, but the thing is that these processes should not be *touched* by the end user. This would not be a problem, BUT these software emit not one 'tamper detection' log event, but thousands and thousands -- to the point of slowing down some PCs. Don't ask me why they emit thousands of duplicate tamper detection events, you can ask them that . Anyway, to AVOID this, we do not even touch certain processes.
You may say, but my security software uses a lot of CPU resources, I need to tame it!
Indeed, it does use a lot of CPU and I/O resources, *BUT* it should NEVER be tamed. By design the real time scanners run at the highest available priority already - even if their priority class doesn't show that, the thread priority is surely real-time or highest. Why? Because you WANT whatever the scanner has to do to be completed as quickly as possible. Other processes must WAIT for the 'scan' to complete. Thus, you never want to interfere with this process, NOR do you want to try 'optimize' it yourself, as you can seriously jeopardize the synergy of your PC.
Remember, Process Lasso was *never* meant to be a full-fledged task manager. It is an automation and optimization tool. Thus, we focus on THAT, and that alone.
The good news? ProBalance has been reported by many to help a bit with system responsiveness, *even when* your security software is acting as a counter-weight against it. In other words, it does improve the situation, it just can't magically fix the overhead inherent in your security software.
I would forget about the exact % CPU utilization and focus more on the perceived problems you see with its CPU utilization. With a lowered priority (as ProBalance would do dynamically or a default priority would do), *IF* something else needs the CPU, then its CPU usage will drop MORE than it would have otherwise. It is a matter of contention between processes for the CPU(s). In other words, no reason to let the CPU cycles go underutilized if nothing else needs them. So, in my opinion, I would forget about the exact % CPU utilization and focus more on the perceived problems you see with its CPU utilization. You should find those effects mitigated with priority and affinity adjustments. And, like I said, it should use less CPU as other processes need the CPU.
You may instead focus on CPU affinities. These allow you to limit the breadth of a processor, so that it can only consumer x/Y CPU cores available. This will, in effect, limit it's CPU % as a total of avaialble CPU cycles. It will not, however, limit the CPU allocation on the processors under which it is placed. This may not also always end up as optimal as you think, and definitely do NOT try this on a large scale basis (e.g. trying to categorize all processes on specific cores). The OS Scheduler does this, and is pretty smart, so should be left to its work. It knows to keep a thread on a core as long as possible, but sometimes move it to prevent too much load on one core for too long (causing excessive thermal problems). That said, there is room for optimization, but be careful.
We do offer actual 'hard' CPU throttling within Process Lasso, but it is very unnatural for Windows and for Windows applications. Therefore, it only works in limited cases.
Ah, the ever-so-confusing virtual memory defintions. Even programmers are sometimes confused by them. Here I'll try to clear them up. I haven't much time, so its just a quick explanation. You will need to know the basics of virtual memory to understand it.
Virtual memory is an abstraction layer, allowing what you (and processes) think of as 'memory' to be stored in any combination of phsyical media and shared between processes. It has numerous benefits. For one, it lets you have a very large amount of memory, since virtual memory is limited only by the space available on the page files' storage medium (hard drives or SSDs). Secondly, it is easily shared since duplicated memory can simply 'point' to the first copy of it. There are many sother benefits as well.
When virtual memory is accessed (a hard page fault), it is moved into RAM (page in or swapped in). When it is unused for a long period, or RAM is needed elsewhere, it is moved to the SWAP file (paged out). All this is transparent to the process. The process simply sees and accesses memory at address X, and the OS makes sure it is in RAM (if not already). Ideally, you WANT all frequently accessed virtual memory to be in RAM, so it doesn't have to be read from the much slower page file.
Commit Charge can be best defined as the amount of virtual memory committed to that application (whether it resides in RAM on the page file). This in in contrast to the 'Working set', which excludes memory that is swapped out.
Working Set is the amount of virtual memory actively in RAM, excluding the portion swapped out to the page file.
Private Bytes is the amount of virtual memory in the process space that is not shared from some other process. When virtual memory pages are duplicated, they can be shared between different processes in memory.
Private Working Set is the amount of RAM used exclusively by this process. This value is normally equal to the Commit Charge, but could vary if the process is sharing a lot of its memory with another process (i.e. another instance of itself). Google Chrome is an example where this will vary a lot. This metric requires more CPU cycles to compute, and is therefore not recommended to use unless you absolutely must know it. You will see a warning when enabling it.
Total Virtual Memory Usage is the sum of all virtual memory mapped into a process's address space. This value will seem huge, but it includes stack space and other reserved virtual memory that isn't used. Most users should ignore this field.
Process Lasso ignores processes it has no access to. In Windows Vista+ (including Windows 7), this means you must set Process Lasso to run with 'Highest' rights. You can do this through the menu option 'Options / General Process Lasso Settings / Reconfigure the way Process Lasso starts ...'. There are some caveats to running Process Lasso in this mode, so you may see some warnings. However, you will see ALL processes, and it will manage ALL processes when in this mode. MANY ANTI-VIRUS PRODUCTS ARE IGNORED AND NOT LISTED DUE TO THEIR TAMPER DETECTION TECHNOLOGIES.
During the install, you are asked if you want to run Process Lasso with 'elevated' rights, and also if you wish to have your instance of Process Lasso manage the processes of all users. Both options are in the last configuration dialog. Simply check these boxes during install and any instance of Process Lasso will manage the processes of all users.
However, this is not normally recommended. The default configuraton concept is that each user should get an instance of the governor (core engine) running that manages his or her own processes.
Install version 4. It will properly create a new login task in the revamped Task Scheduler present in Vista+. This will allow it to start with UAC elevated permissions without any UAC elevation dialog. To manage or change the entries it creates, goto the 'Task Scheduler'.
The 'core engine' (processgovernor.exe) is what actually 'does the work'. It applies ALL automated process rules, including ProBalance, default priorities, default affinities, disallowed processes.. everything. So, you can use the GUI (processlasso.exe) to create/edit process and settings, then close it completely when not needed. This minimizes resource usage. The core engine is silent though (not even a system tray icon), but it does write all its actions to a log you can view later with the GUI.
When shutting down Process Lasso, you are asked if you also want to stop the core engine. So, shutting down allows you to either close only the GUI, or both the GUI and core engine.
For Gaming and similar tasks it can be useful, but YMMV. This puts your PC in a high performance Power Profile and tweaks ProBalance settings to help give the foreground process as much attention as it can. Now, it also does a temporary foreground boost, but only to Above Normal priority class. For this reason, I recommend simply trying it out. It may work great to avoid micro-lags, but that isn't guaranteed as interoperability issues with the priority class change could theoretically exist in rare cases. If it doesn't work, it won't cause any big problems.. For the vast majority for which it does work, it is just another little optimization to improve their PC gaming experience ;).
Process Lasso's ProBalance doesn't tame anything, it just reprioritizes the importance of the processes (the threads of them) in the view of the Windows CPU scheduler. This allows it to give CPU cycles to preferred threads in periods of high CPU contention.
Virtual memory usage is NEVER changed/tweaked/adjusted. Now, for Vista, Win7, Win8, and Win2013, the SuperFectch priority of memory pages can be partially derived from the process priority class. Therefore, in an indirect way I suppose it might also aid that.. lol. That'd be a huge market-sleeze type claim there, and I won't make that one ;).
Process Lasso does have optional features to do things similar to those 'memory cleaners', but will see strong advice agaisnt utilizing them.
While there isn't a built in shortcut key to show the Process Lasso main window, you can easily add one yourself. To do this, right click on the Process Lasso start menu shortcut and select 'Properties'. There is a field 'shortcut key'. Using that field, you can assign Process Lasso a shortcut key (e.g. CTRL+ALT+K). Now when you press that shortcut combination, you'll see Process Lasso's main window pop up.
Since anti-virus software processes are sensitive to priority adjustments, many common anti-virus softwares are excluded from restraint. Consider the real-time scanner of your anti-virus software. Whenever a file is opened, the process opening the file must WAIT for the scanning to complete. So, you don't want to lower the priority of the real-time scanner, as that would not make things happen quicker. In fact, it would have just the opposite effect. Other software isn't as careful as Process Lasso, but we wanted to DO THINGS RIGHT! .. even if it means sometimes people think that the product isn't not working because it skips a process that is using a lot of CPU.
If your anti-virus software isn't on our hard-coded exclusion list, that's no big deal because it probably would never get acted on anyway. However, if you see Process Lasso's ProBalance acting upon it, then you may want to exclude it from restraint. Most of the time, this isn't an issue since ProBalance would only act on a non-excluded critical process of anti-virus software under rare conditions. In the majority of cases, the default settings themselves implicitly exclude critical anti-virus processes.
This line represents the CPU history of the process(es) you have currently selected. Yes, this is not indicated on the graph legend.
For more information, see How Does Process Lasso's Restraint Work?
CD/DVD Burners typically don't use enough of the processor to be restrained, as they are usually waiting on disk or optical drive I/O. It is actually more likely that a buffer underrun would be prevented by Process Lasso because if you were in such a high-load situation, the other offending processes would have their priorities lowered, there-by giving the burning application more access to CPU cycles. Even if the burning process itself got lowered in priority, it'd be no worse off than without Process Lasso since the other active processes would surely have been lowered as well, there-by giving it equal footing, as it had originally.
Also, some burners raise their own priority and Process Lasso will NOT lower the priority of processes that have raised their own priorities, depending on the configuration of Process Lasso.
The bottom line is: Process Lasso is most likely to HELP, and even in a worst case scenario it shouldn't make things worse. That said, adding Optical Burning apps to the Process Restraint Exclusions list is probably a good idea, but far from necessary.
Process Lasso was designed to, above all, 'do no harm'.
Process Lasso supports completely unattended installation. All necessary settings can be supplied on the command line, including the license key. Please see this page for more info.
Automatically managing process/thread priorities without interferring with system and application operation, and effectively increasing system responsiveness is a delicate business. It could be done in a dumb sort of way that 'just does it'. That's not Process Lasso. Process Lasso was designed to interfere as little as possible with the Windows scheduler. In fact, it is designed to compliment and work along-side the Windows scheduler. Unfortunately, many other products that have a less sophisticated approach may not be so elegant. However, in some cases alternate products may be desireable. Our product is free. We invite you to find what's right for you.
RAM is your fastest storage medium. You generally want to keep as much data in it as possible, not force pages out to the page file so you have more 'free' RAM for the system cache or new application launches. When you force pages out, they simply have to be reloaded again later as page faults occur on them (see other answer for explanation of page faults). For more information, try this (very old) article.
It represents the ability of the thread messages subsystem to keep up with thread/window message demand. The exact way we calculate this we don't publish, but its a pretty simple and accurate measurement.
If your settings are the default, that means a process priority was automatically lowered via the process restraint mechanism, AND/OR it means your system is having a sustained 100% CPU load period (giving all it can give).
Sometimes applications like to control their own priorities. Process Lasso doesn't try to fight with them, instead only making a single attempt to set the default priority and/or affinity for the process. If you want Process Lasso to aggressively and forcibly enforce your default priorities and affinities, forced mode will do that. If you have a process that isn't staying at the default priority or affinity, you can use this option. It should be noted though that application that set their own priorities or affinities may be doing so for a good reason.
In another way to describe it: Forced Mode reapplies default priorities, affinities, and power profile settings. Let us say you have a default priority of 'Above Normal' on a process. However, you then change that priority manually to Normal. Or perhaps the program itself changes its priority to Normal. Process Lasso does not want to 'fight' with this program, or your manual change, so will let it be. If Forced Mode is on, it forces the priority back to Above Normal.
When this is enabled for a process, Windows temporarily boosts the priority of threads for that process under certain conditions (when it leaves a wait state). For specific information, see this MSDN page about Windows dynamic thread priority boosting. Turning this off can severely impact the performance of applications that have a graphical user interface (a window). For background applications, this setting is not usually important.
That indicates whether or not Windows dynamic thread priority boosting is enabled for that process (see other question about thread priority boosting for explanation).
New in v4.1 (v4.09 beta), Process Lasso has explicit current and default I/O priority settings available those who require them. This only applies to NT6+ (Vista,Win7,...).
HOWEVER, Vista's I/O prioritization is based on the priority of the thread doing the I/O, which is dependent on the priority class of the process doing the I/O. There are actually only two levels of priority usable by applications, Normal and Very Low. Although there are technically 5, only these two are implemented or usable by processes.
Therefore, adjustment of the thread priorities will propagate to the I/O of that thread. In this way, Process Lasso already does I/O prioritization. Microsoft recommends applications adjust their I/O priority based by setting the calling thread's priority (directly or by adjustment of the process priority base class).
For some reason the core engine of Process Lasso, named ProcessGovernor.exe, is not running. This is the part of Process Lasso that actually takes action. To Start the core engine, right click on the system tray (or Main menu of Process Lasso), and select 'Start Core Engine'.
Yes, please see our case studies (under construction).
Yes, Process Lasso is designed to work with Windows Vista, Windows 7, Windows 8, and Windows 2013. It will have the same benefits as it does under XP. Furthermore, Process Lasso has some specific features that compliment the newer Microsoft CPU and I/O scheduler enhancements.
Alternatively, you could chose to run the Process Lasso core engine as a system service, instead of a service under a specific user account.
For most other editions of Windows, run 'secpol.msc' and edit "Local Security Policies \ User Rights Assignment \ Logon as a service".