Windows 2000 Support

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Friday, 30 October 2009

Process Lasso v3.70.2 released

Posted on 11:27 by Unknown
I've released the second minor update to v3.70. This update includes a few optimizations and a couple minor cosmetic fixes. More importantly, I've replaced the old update mechanism with a simplified rendition. Although I have plans to eventually automate the entire update process, this is a good improvement for now. Given below is a brief list of the characteristics of this new update checker.

  1. During install it will ask the user if he or she wants to enable periodic update checks. This is asked only ONCE, not asked again on updates/reinstall.
  2. The periodic update checks setting applies to all users. It is stored in the HKLM hive. In previous version, it was stored in the configuration file and therefore tended to be per-user. The old INI setting has been deprecated.
  3. The update check enabled setting can be toggled from the GUI, just like the old one. On UAC enabled systems the user will be prompted for appropriate rights elevation when he or she toggles it.
  4. The update check can be invoked from the GUI, just as before. However, its a one click action now. The check will be instant and it will report back to you via a simple message box.
  5. If periodic update checks are enabled, the GUI will check once every 7 days. If it finds an update it will notify the user via a message box. If it doesn't, the user will see nothing.

Next on the agenda is optional automatic updates that utilize the silent (/S) switch of the installer. Process Lasso will self-download, self-install, and all the user will see is a brief recycle of the system tray icon. Imagine.. not having to ever manually run the Process Lasso installer again ;). This feature is not far off at all...
Read More
Posted in | No comments

Wednesday, 28 October 2009

Tightening the Governor

Posted on 10:26 by Unknown
Most users of Process Lasso are familiar with its core engine, ProcessGovernor.exe. It is the silent background process that applies all process rules, including ProBalance dynamic priority adjustments. It is implemented as a stand-alone process to allow users to completely close the GUI, further reducing resource consumption and hiding Process Lasso from the user.

This Governor is already highly optimal. Since it has no interaction with the user, it doesn't have to waste memory with pretty icons, and doesn't have to waste CPU cycles refreshing a window. The size of its working set (memory in use) is largely dependent on the number of processes it has discovered on the system. For Windows XP and Windows 2000, it is often 1MB or less. For Windows Vista and Windows 7, its usually close to 2MB.

The number of CPU cycles used is also dependent on the number of processes running on the system, and (most importantly) the refresh rate setting. The refresh rate can be High, Normal, or Low. At High, the Governor acts quickly, but uses double the CPU cycles of the Normal refresh rate. Similarly, a Low refresh rate uses half the CPU cycles of the Normal refresh rate. No matter what, the Governor never uses enough CPU cycles for anyone to really notice. In any configuration, even on the slowest systems, it rarely approaches 0.1% utilization of available CPU cycles in a 1 second interval.

So now we know it uses almost no CPU cycles. That's great, so why bother continuing to work on it? Well, the faster we can get the governor's loop, the quicker it will respond during extreme high load situations.

From now on, when I make new optimizations, I'll write about some of them. I probably won't ever get around to documenting all the important optimizations I've made in the past. So, let's get to it..

For v3.70.2, I've removed occurrences of WaitForSingleObject from the Governor's primary thread. Previously, I was waiting on an 'exit me' event, using the timeout of WaitForSingleObject as the sleep mechanism between iterations.

Additionally, I was also invoking WaitForSingleObject to check if a change notification event was fired for the configuration file. This is, of course, to reload the configuration file when changes are detected.

There's absolutely nothing abnormal or wrong about using WaitForSingleObject (or WaitForMultipleObjects). That API is the mechanism the Windows kernel provides to put a thread to sleep until certain events have fired or a timeout has been reached. It is also the typical way of checking the state of an event object.

However, it turns out that WaitForSingleObject is excessively expensive, inducing an entrance into kernel mode even if there is no contention, and even if its used with a zero timeout to simply check the state of an event object. For a little more insight into the overhead of WaitForSingleObject see this link.

Being so expensive, I decided to remove it from the primary loop of the Governor. First, I switched to a Sleep to pause the primary thread, instead of relying on the timeout of a WaitForSingleObject call. Next, I simply created a new helper thread that does nothing but WaitForMultipleObjects on the events I'm watching (exit and config change). When one gets signaled, I set a global boolean to let the primary thread know the event signalled it next wakes up from its sleep.

Of course, I did have to add a new synchronization object for the code blocks working with the configuration file change boolean. However, that's no problem since a simple critical section with a non-blocking (optional) entrance in the primary thread works great and is highly efficient.

Yep, a simple 2 minute change and a 30 minute article ;p.

The end result is that the primary thread of the Governor no longer invokes WaitForSingleObject. This means no more expensive entrances into the kernel. Now, if only the CPU utilization wasn't already so low that the impact of this change is imperceptible ... ;)
Read More
Posted in | No comments

Saturday, 24 October 2009

Process Lasso v3.70.1 released

Posted on 21:16 by Unknown
The first minor update of v3.70 is now available. This update does a lot of polishing, mostly cosmetic. As always, the change log is listed at the end of the v3.70 revisions. There is an area for 'post release updates'. Link
Read More
Posted in | No comments

Thursday, 22 October 2009

Process Lasso v3.70 launched

Posted on 10:52 by Unknown
I was so busy yesterday that I neglected to post a blog entry about the long awaited release of Process Lasso v3.70. As readers of this blog may know, this version is the first COM-less and 100% UNICODE build. It also offers several new features and a reduction in memory and CPU utilization (yes, its even leaner than before).

The magnitude of the changes required I keep it in beta for quite some time. In fact, its been 2 months since the last major final release! Needless to say, I'm quite happy to have this version out.

In the coming days I'll periodically update the v3.70 build to include refreshed translations. Enjoy this new version and please feel free to email me with any feedback.
Read More
Posted in | No comments

Tuesday, 20 October 2009

ProcessGovernor improvements

Posted on 08:56 by Unknown
Amongst many other chores, I've been working on the final changes to the Process Lasso core engine (ProcessGovernor) the last couple days. I've made numerous improvements. These changes include:

  • Completed High Performance power scheme feature that allows the user to designate processes that should induce the High Performance power scheme on the system.
  • A newly assigned ProBalance exclusion of a process actively in restraint will now cause the process to immediately go out of restraint (returned to its previous state).
  • Rewritten automatic gaming mode implementation so that configuration changes take effect immediately - no more waiting until the next time you start a game for it to engage gaming mode.

Note that these changes are still unreleased. They will be in the next build uploaded (coming later today).

Importantly, I made sure that these changes were done optimally. I could have thrown them in quickly, not caring about how many CPU cycles they add to the primary loop of ProcessGovernor, but that's not how we do things here at Bitsum ;).

I had hoped to have to final v3.70 out yesterday, but I'm obviously behind schedule. I now believe that the new final version will be available within the next 24-72 hours, depending on how regression testing and debugging goes.

As always, I thank all those who have supported my software.
Read More
Posted in | No comments

Saturday, 17 October 2009

New final coming soon

Posted on 08:49 by Unknown
I'm nearly done with this current beta series. Yesterday I did an extensive code review of all changes made (there were a lot). I found a few minor bugs and corrections that needed making (only applicable to this beta). While some of this errata would have been revealed during product testing, I probably would have missed some minor bugs that didn't manifest under all circumstances. Code review is essential to any project. While its tedious and time consuming, its well worth it.

In addition to polishing and fixing the new code yesterday, I also made a lot of other progress. I added a new menu option to set the current Power Scheme. However, this capability is currently only available for Vista+. The Power APIs were redesigned in Windows Vista, and I simply haven't written code to work with the older 2K/XP APIs yet. Whether or not I ever will, I don't know. It depends on user demand.

I also finished rewrites of a few portions of the GUI that further improve performance. Sure, I'm nit-picking the code here, but I want every new version to be leaner and meaner than the last ;).

Needless to say, I am eager to get this new final version out. The new svchost.exe instance differentiation, less resource use, and full UNICODE support will make this a great new version. The one thing I don't want to do is rush it before its ready though. I sometimes release betas a little too early, but I am committed to not making that mistake for final builds of the software. Process Lasso has too many users to be anything but extremely cautious when such large changes are made.

At present, I plan the final build to be released early next week. Due to the large number of changes, I'm considering incrementing the version number to v3.70.

P.S. I recommend all translators begin their updates now. I believe I have completed most string changes at this point.
Read More
Posted in | No comments

Thursday, 15 October 2009

Is Process Lasso Windows 7 ready? - Yes, it is!

Posted on 11:16 by Unknown
Recently I've had a couple users ask me if Process Lasso is compatible with Windows 7. The answer is YES, Process Lasso works wonderfully in Windows 7 (both 32-bit and 64-bit).

Earlier this year, when I first started playing with Windows 7, I discovered that Process Lasso already worked very well with it. There were no substantial changes to the NT native APIs and data structures, and no major architectural changes that would affect Process Lasso. In fact, the only 'problem' was the new 'Did this program install correctly?' prompt. A couple tweaks later, that prompt was no more. I did also make a couple UI tweaks to better adhere to the new Windows 7 UI standards, but no major changes.

I've now been running Windows 7 for quite some time. Every build of Process Lasso is fully tested on it. You can be sure that Process Lasso and Windows 7 is a wonderful combination.

As a side note, I think that Windows 7 is the best thing Microsoft has done in a long time. The the usability and appearance of Windows has improved substantially. I honestly did not think Microsoft had it in them. Of course, the hard architectural work was all accomplished with Vista. Now they've polished those changes, and brought forth a mighty new contender in the OS wars.

If you missed your chance to freely install Windows 7 RC1 in Microsoft's public beta program, the OS will hit store shelves on Oct. 22. If your PC runs Vista, it should be able to run Windows 7 even better. Those users who are running Windows 7 RC1 have until early next year to upgrade to the final build. Just be sure to reinstall Process Lasso after your upgrade ;).
Read More
Posted in | No comments

Monday, 12 October 2009

Process Lasso v3.65.7 beta released

Posted on 06:43 by Unknown
I'm marching towards the eventual end of this beta series, though its still several versions off. This latest beta continues improvements to the product and advances our position on the product road map. Here's a couple of the improvements:

Tooltips on the process listview were added. I still have much more information to add to the tooltips, but I've got them implemented.



I revamped the InstallHelper startup config dialog and added tooltips to both install configuration dialogs.

Read More
Posted in | No comments

Tuesday, 6 October 2009

Process Lasso v3.65.3 beta released

Posted on 08:09 by Unknown
I've released the first new beta that is 100% UNICODE. I've regression tested almost all the software, though there may still be some minor flaws here and there. The transition took some time, as there were more complications than I had hoped there would be. Regardless, everything is done now. All of the software, including the log and configuration files, are UNICODE.
Read More
Posted in | No comments

Thursday, 1 October 2009

Two new features and UNICODE

Posted on 10:29 by Unknown

New Features

Yesterday I released v3.65.2 beta. Amongst continued optimization of the new no-COM code base, I've added a couple new features. Well, ok, one new feature with the other coming in the next build. These are in the new 'When Running' process context menu:
    (when running)
  • Prevent PC sleep
  • Enter High Performance power scheme

When Running Menu Pic Here

Both do just what they say. The Prevent PC Sleep feature prevents the PC and display from sleeping while a process is running. The Enter High Performance power scheme feature switches the PC to the High Performance power scheme when the process is running.

This last feature (Enter High Perf..) is not yet fully completed in the core engine, so I disabled it in this build. It will come in the next. I expect it to be highly useful to many people. Imagine, when you're playing your favorite game your laptop will instantly go into the High Performance power scheme, possibly eking out a little more performance. When you close your game, it returns to the original power scheme.

UNICODE users rejoice!


I'm also happy to announce that the next beta will be the first 100% UNICODE build. Prior to this, I had kept the project multi-byte (ANSI), but transformed select pieces of code to wide characters (UNICODE). Although I wrote almost all the code to easily support either character set by using TCHARs, this transition still requires full regression testing. I figured since I was going to have to do full regression testing anyway, now was the time to finally make the switch.

Silent update to v3.64.3


Lastly, for anyone who cares, I performed a silent update of v3.64.3 final. This build has no real changes. It simply re-enables the warning about the French translation being incomplete. It was also built in a newly created virtual development environment, but that's hardly something that matters to end users. Of course, I did make sure to run it through the usual final build tests since I had utilized the new build environment.
Read More
Posted in | No comments
Newer Posts Older Posts Home
Subscribe to: Posts (Atom)

Popular Posts

  • WARNING: Cracks for Process Lasso may modify HOSTS file
    WARNING:  Cracks for Process Lasso have been seen to modify your system HOSTS file so that you can no longer access  bitsum.com  and/or  bit...
  • Process Lasso and WDFME
    Since Process Lasso can be complex for the layman, something we are working on, I wanted to list a set of steps to address the commonly abu...
  • Tightening the Governor
    Most users of Process Lasso are familiar with its core engine, ProcessGovernor.exe. It is the silent background process that applies all pro...
  • The many instances of Chrome
    As many readers of this blog may know, Google Chrome is different from other Windows web browsers. It isolates each of its tabs into an indi...
  • Oh the frustration with this corporate crapware!!
    I now get uninstall feedback, as I solicit it (for better or worse). Once read, I can never go back, lol. Fortunately, most of it is actuall...
  • ParkControl updated to v1.0.0.0
    This nifty utility, included in Process Lasso v6, lets you enable or disable CPU core parking in REAL TIME , no reboot required. It also let...
  • Next update, Options menu gets some changes
    I decided to make the Options menu a little more consistent and move the ProBalnce configuration down with the rest of the rules configurati...
  • Anti-virus software - the #1 cause of PC performance troubles
    Many users realize their anti-virus software consumes massive amounts of system resources, and hope that Process Lasso will somehow keep it ...
  • If you are seeing random crashes of the GUI or core engine ...
    Many users of Process Lasso have experimented with various system 'optimization' utilities. Many of these make permanent changes to ...
  • CPU Parking revisited: How to enable or disable CPU Parking yourself without registry edits
    This post has been superceded by this newer, better, and more up to date one.. including a new freeware utility called ParkControl that can ...

Blog Archive

  • ►  2013 (1)
    • ►  March (1)
  • ►  2012 (6)
    • ►  September (1)
    • ►  July (1)
    • ►  June (2)
    • ►  January (2)
  • ►  2011 (166)
    • ►  December (3)
    • ►  November (2)
    • ►  October (2)
    • ►  September (6)
    • ►  August (12)
    • ►  July (14)
    • ►  June (17)
    • ►  May (19)
    • ►  April (13)
    • ►  March (27)
    • ►  February (31)
    • ►  January (20)
  • ►  2010 (203)
    • ►  December (23)
    • ►  November (34)
    • ►  October (38)
    • ►  September (17)
    • ►  August (19)
    • ►  July (19)
    • ►  June (11)
    • ►  May (16)
    • ►  April (8)
    • ►  March (6)
    • ►  February (6)
    • ►  January (6)
  • ▼  2009 (43)
    • ►  December (6)
    • ►  November (1)
    • ▼  October (10)
      • Process Lasso v3.70.2 released
      • Tightening the Governor
      • Process Lasso v3.70.1 released
      • Process Lasso v3.70 launched
      • ProcessGovernor improvements
      • New final coming soon
      • Is Process Lasso Windows 7 ready? - Yes, it is!
      • Process Lasso v3.65.7 beta released
      • Process Lasso v3.65.3 beta released
      • Two new features and UNICODE
    • ►  September (3)
    • ►  August (1)
    • ►  July (9)
    • ►  June (2)
    • ►  May (3)
    • ►  April (4)
    • ►  March (4)
Powered by Blogger.

About Me

Unknown
View my complete profile