Although I wanted to get a little more done, I felt I had reached a good stopping point and translators were all waiting patiently for me to finally get their updates out. The new build is described here: http://bitsum.net/forum/index.php/topic,761.msg3835.html#new
Wednesday, 29 June 2011
Thursday, 16 June 2011
Process Lasso v5.0.0.29
Posted on 00:39 by Unknown
Changes:
- [.29]Change.GUI: Graph now laid out in horizontal rectangles instead of squares
- [.29]Change.GUI: Change increment/interval length on graph
- [.29]Change.GUI: Updated Italian, Polish
- [.29]Change.GUI: Optimized graph painting some
- [.29]Change.GUI: Removed some performance profiling code from release build
- [.29]Change.Core: Adjusted hard-throttle levels for wider spread and more aggressiveness at higher levels
- [.29]Fix.GUI: Fixed Memory Load graph could be unpainted for a second after another window clips it in 2K/XP only
- [.29]Fix.GUI: Fixed lost first character on some rundll32 formatted process names
- [.29]Fix.Core: Fixed issue where default power scheme may not stay or wouldn't revert as expected in some circumstances when multiple default power scheme processes were running
- [.29]Fix.Core: Fixed 'EMPTY STRING' seen in ProBalance end log message description column (not shown by deafult)
Tuesday, 14 June 2011
Forum RSS feeds now primary release notification
Posted on 13:29 by Unknown
For those who want to stay up to date with the latest releases and change logs, instead of subscribing to this blog, I recommend using the Forum. As of v5.0.0.25 I began publishing minor updates in the release announcements there.
To subscribe, add this URL to your feed reader (e.g. Google Reader):
http://www.bitsum.net/forum/index.php?action=.xml;type=rss2;board=3
To subscribe, add this URL to your feed reader (e.g. Google Reader):
http://www.bitsum.net/forum/index.php?action=.xml;type=rss2;board=3
v5.0.0.28 graph change
Posted on 13:13 by Unknown
More graph lines, better consistency with other system graphs. I have some more tuning I'll be doing. I have decided to simply emulate the typical Windows graph instead of trying to forge my own path.
Monday, 13 June 2011
CPU Parking revisited: How to enable or disable CPU Parking yourself without registry edits
Posted on 14:18 by Unknown
This post has been superceded by this newer, better, and more up to date one.. including a new freeware utility called ParkControl that can assist in enabling or disabling CPU core parking. For information, see http://bitsum.com/about_cpu_core_parking.php
OLD ARTICLE (still better than all those that tell you to edit the registry)
A month ago I wrote a long blog post about CPU Parking, a new feature of Windows 7 / 2008 R2. Since I later deferred release of a quick feature to toggle this system setting, I deleted the rambling blog post. I decided it was past time to restore some information on CPU Parking.
CPU Parking is a feature of multi-core/SMP systems that disables cores when the system load is low enough to allow such. Windows provided no direct way to adjust this via the user interface, as they likely thought everyone would want to keep this enabled. According to public documentation on the feature, unpark time is near instantaneous. Indeed, it may very well be. Additionally, by parking CPUs you can potentially reduce core thrashing - when a thread is swapped between cores unnecessarily, causing a performance hit.
However, for systems where power consumption and heat are not an issue, but maximum performance is, it may be desirable to disable CPU Parking. The fact is that even if unparking is near instantaneous, CPU utilization usually occurs in very brief bursts, something I mention frequently. If you look at your CPU utilization and see 15%, that is actually the percentage of time the CPU was active within a relatively large interval (usually 1 second). Actual CPU utilization most often occurs in micro-bursts where the CPU is fully consumed for a few nanoseconds or microseconds. You want those bursts to execute as fast as possible, and this is why all power saving technologies, including frequency scaling, incur *some* performance hit. This is also why a faster CPU does matter, even if you typically don't utilize 100% of available CPU time over a larger interval.
Whether or not Core Parking is actually used on your PC depends on a few factors. First, your PC must be have at least 2 physical or logical cores/CPUs. Most of the time it is enabled for laptops and servers, but not for desktops. It can also vary between vendors, as many create sets of custom power schemes supposed to offer better performance or improved battery life (rarely do they). It also can vary between Windows editions. The Server Editions tend to make more aggressive use of it by default.
Want to see if it is active or not? Fire up the Windows Resource Monitor and go to the CPU tab. Parked cores will be clearly shown as 'Parked' in the caption of their graph. CPU Parking is actually done quite aggressively. On a dual-core HyperThreaded Core i5 (4 logical cores), I have seen cores parked even as total CPU utilization approaches 50%. Windows seems fairly smart, parking the HyperThreaded/fake cores first.
Changing CPU Parking Settings
Many places on the internet tell you to edit the registry directly when adjusting CPU Parking. I don't actually recommend this. Instead, use the console mode powercfg.exe. Using it you can also tune the CPU Parking so that a certain percentage of your cores must remain unparked at any given time.
You must run this utility with elevated rights, so be sure to open an elevated console window by right-clicking 'cmd.exe' and selecting 'Run as Administrator'.
To mandate 50% of available cores always remain unparked, run:
You should not have to reboot for these changes to take effect. Go ahead and check the Resource Monitor and verify that CPU Parking is indeed as you set it.
I hope this helps some people. Why would you go around making manual edits to the registry when powercfg can do the job for you? You shouldn't. Registry edits are prone to mistakes and are generally more tedious and less clear.
Enjoy ;)
OLD ARTICLE (still better than all those that tell you to edit the registry)
A month ago I wrote a long blog post about CPU Parking, a new feature of Windows 7 / 2008 R2. Since I later deferred release of a quick feature to toggle this system setting, I deleted the rambling blog post. I decided it was past time to restore some information on CPU Parking.
CPU Parking is a feature of multi-core/SMP systems that disables cores when the system load is low enough to allow such. Windows provided no direct way to adjust this via the user interface, as they likely thought everyone would want to keep this enabled. According to public documentation on the feature, unpark time is near instantaneous. Indeed, it may very well be. Additionally, by parking CPUs you can potentially reduce core thrashing - when a thread is swapped between cores unnecessarily, causing a performance hit.
However, for systems where power consumption and heat are not an issue, but maximum performance is, it may be desirable to disable CPU Parking. The fact is that even if unparking is near instantaneous, CPU utilization usually occurs in very brief bursts, something I mention frequently. If you look at your CPU utilization and see 15%, that is actually the percentage of time the CPU was active within a relatively large interval (usually 1 second). Actual CPU utilization most often occurs in micro-bursts where the CPU is fully consumed for a few nanoseconds or microseconds. You want those bursts to execute as fast as possible, and this is why all power saving technologies, including frequency scaling, incur *some* performance hit. This is also why a faster CPU does matter, even if you typically don't utilize 100% of available CPU time over a larger interval.
Whether or not Core Parking is actually used on your PC depends on a few factors. First, your PC must be have at least 2 physical or logical cores/CPUs. Most of the time it is enabled for laptops and servers, but not for desktops. It can also vary between vendors, as many create sets of custom power schemes supposed to offer better performance or improved battery life (rarely do they). It also can vary between Windows editions. The Server Editions tend to make more aggressive use of it by default.
Want to see if it is active or not? Fire up the Windows Resource Monitor and go to the CPU tab. Parked cores will be clearly shown as 'Parked' in the caption of their graph. CPU Parking is actually done quite aggressively. On a dual-core HyperThreaded Core i5 (4 logical cores), I have seen cores parked even as total CPU utilization approaches 50%. Windows seems fairly smart, parking the HyperThreaded/fake cores first.
Changing CPU Parking Settings
Many places on the internet tell you to edit the registry directly when adjusting CPU Parking. I don't actually recommend this. Instead, use the console mode powercfg.exe. Using it you can also tune the CPU Parking so that a certain percentage of your cores must remain unparked at any given time.
You must run this utility with elevated rights, so be sure to open an elevated console window by right-clicking 'cmd.exe' and selecting 'Run as Administrator'.
To mandate 50% of available cores always remain unparked, run:
powercfg -setacvalueindex scheme_current sub_processor bc5038f7-23e0-4960-96da-33abaf5935ec 50To adjust it so that only 25% of available cores remain active at all times, allowing 75% of available cores to be parked, you'd run:
powercfg -setacvalueindex scheme_current sub_processor bc5038f7-23e0-4960-96da-33abaf5935ec 25
Yes, you can use '0' - Windows is not stupid enough to park all cores at once, it will always leave at least one core active. In fact, this is usually the default setting when it is enabled. For example, to enable maximum use of CPU Parking:
powercfg -setacvalueindex scheme_current sub_processor bc5038f7-23e0-4960-96da-33abaf5935ec 0To disable CPU Parking completely, you'd want to run:
powercfg -setacvalueindex scheme_current sub_processor bc5038f7-23e0-4960-96da-33abaf5935ec 100After changing the power scheme settings for CPU Parking as desired, you then want to make the changes active by running the command:
powercfg -setactive scheme_currentWhen I first wrote this I included allowing specification of AC or DC (battery) values for the power scheme. Setting the DC power value isn't documented, so I am going to skip that. Still, to do so you'd simply replace '-setacvalueindex' with '-setdcvalueindex'. It also is not entirely clear if this is supported for every power scheme, though it certainly appears to be. Sadly, Microsoft's documentation is quite scarce.
You should not have to reboot for these changes to take effect. Go ahead and check the Resource Monitor and verify that CPU Parking is indeed as you set it.
I hope this helps some people. Why would you go around making manual edits to the registry when powercfg can do the job for you? You shouldn't. Registry edits are prone to mistakes and are generally more tedious and less clear.
Enjoy ;)
Process Lasso v5.0.0.28
Posted on 01:48 by Unknown
This build continues maintenance, fixing several items and also making a nice improvement to the graph's display. Further, the last selected process tab is now preserved on restart. The most important fixes are the configuration file would reset on XP systems with Terminal Services disabled, and the governor could get stuck pending deletion on a reinstall or upgrade when it was configured to run as a service.
- [.28]Addition.GUI: Persist current upper tab view across restarts (save upper tab selection)
- [.28]Change.InstallHelper: Reworked Terminal Services non-critical, but suggested, dependency check
- [.28]Change.InstallHelper: Reworked Task Scheduler service non-critical, but suggested, dependency check
- [.28]Change.Installer: Removed 'Restore system tray icon' start menu item
- [.28]Change.GUI: Increased number of horizontal graph lines, improving look of graph
- [.28]Change.GUI: Slowed process icon retrieval in cases where the GUI is first opened during a high disk load
- [.28]Change.ServiceMgr: Wait for service to stop when requested
- [.28]Fix.All: Fixed issue with an improper registry key path, auto-cleanup
- [.28]Fix.GUI: Fixed issue where when Terminal Services is disabled in XP, a logic error in the GUI would cause configuration to reset
- [.28]Fix.GUI: Fixed message box warning when Terminal Services is disabled ask a question, but no Yes/No option is actually available
- [.28]Fix.GUI: 'Configure Default I/O Priorities' application menu item was not being properly disabled and grayed in XP and 2K
- [.28]Fix.InstallerHelper: Fix date/time format could get misremembered
- [.28]Fix.InstallHelper: Fixed issue when reconfiguring the governor startup type when was/is set to start as a service, would fail until next reboot with a pending service deletion error
Sunday, 12 June 2011
Windows XP w/o Terminal Services config file reset bug
Posted on 15:15 by Unknown
One issue I've had reported was that the configuration was being reset. Thanks to a user report I finally was able to determine what was going on. It ONLY affected people running Windows XP *and* who had Terminal Services (TermService) disabled. The default setting for this service is Manual, and that is certainly what I recommend. Contrary to popular belief, disabling services really doesn't gain you much performance or save many resources. What it does do is muck with the operation of the system and applications. Now, this bug wasn't actually due to Terminal Services, rather a logic error in the GUI caused the configuration file to be reset when this condition was found. Basically the GUI was changing a setting to deal with the lack of Terminal Services availability, then saving the configuration file before it was ever loaded to start with. This bug likely crept in during the last beta as some of the initialization code was re-arranged.
This has been FIXED internally and is pending release in v5.0.0.28, a build that has an assortment of minor fixes and improvements. Even the graph has changed in appearance, for the better I do believe. This new build is being prepared now.
This has been FIXED internally and is pending release in v5.0.0.28, a build that has an assortment of minor fixes and improvements. Even the graph has changed in appearance, for the better I do believe. This new build is being prepared now.
Thursday, 9 June 2011
v5.0.0.27: A few fixes and restores Windows 2000 support
Posted on 19:32 by Unknown
This minor update fixes a crash of the Process Lasso GUI in Windows 2000 as well as a few other items.
- [.27]Fix.GUI: Fixed crash seen in Windows 2000. Note that process icons are disabled in W2K, at least for now, as the issue is in the new code to more efficiently resolve them using system APIs not available in W2K.
- [.27]Fix.Core: Fixed premature exit of default power scheme in certain cases where multiple default power scheme processes were running
- [.27]Fix.GUI: Fixed Russian activation dialog had User and Code captions reversed
- [.27]Fix.All: Fixed theoretical cause of settings being reset under rare circumstances
Fix for Windows 2000 users coming next build
Posted on 19:05 by Unknown
I've fixed a crash in the GUI seen in Windows 2000. It was caused by use of the new process icon resolution code, which depended on newer APIs not available in Windows 2000. I suppose I shouldn't be surprised that Windows 2000 is still in use. For many tasks I do suppose it is a viable OS and there is no reason to change. Of course, many vendors have dropped support for it, but I have restored proper support in v5. This will be in v5.0.0.27, which is coming shortly.
Tuesday, 7 June 2011
Betanews publishes Process Lasso v5 release article
Posted on 08:23 by Unknown
One of my favorite web sites is Betanews. They regularly post useful and interesting articles, keep me updated on new software releases, and have a great community of users who generally tell it like it is. I was therefore very pleased to see an article about Process Lasso on the home page!
v5.0.0.26: A few very minor adjustments
Posted on 08:03 by Unknown
This is a very minor update. In fact, I may delay or not push out update notifications for this build. The primary fix in this build I wanted to get out was a small mistake in a previous minor update that caused the 'Automatic updates' option to NOT persist for users first enabled it in a recent version. I had removed an extra EULA confirmation and in doing so introduced a small bug that prevented it from ever being true. This is fixed. In addition, some general maintenance to the service management code base was performed.
- [.26]Change.GUI: Updated Italian
- [.26]Fix.GUI: Fixed bug that started a few minor updates ago, causing automatic updates to not actually be turned on (though it appeared checked at first)
- [.26]Change.InstallHelper: Further consolidated the service creation code
- [.26]Change.InstallHelper: Added critical section timeout system registry value check, to ensure no user set it to an improperly low value
Sunday, 5 June 2011
v5.0.0.25: Portable Edition goes final, command line param fixes
Posted on 19:15 by Unknown
The Portable Edition is now coming out of beta. I finally finished this up, something I should have done a long time ago given the interest in this edition. As I worked on the new portable edition, I noticed some bugs in the command line parameter handling. This build also resolves those bugs.
- [.25]Change.GUI: Automatic updates no longer marked as experimental
- [.25]Change.Portable: Changed distribution to simple ZIP archive of Process Lasso program with a batch file to start
- [.25]Change.Portable: Configuration file and log file now stored alongside program file
- [.25]Change.Portable: Automated updates now work with the portable edition, though only automated updates at this time
- [.25]Addition.SrvStub: Added version resource
- [.25]Addition.GUI: Added /configfolder command line option for optional use instead of /configfile
- [.25]Change.All: /configfolder now expands '.' as current working directory, as does /logfolder
- [.25]Change.GUI: Remove random nag shown 1/6 main window opens from system tray
- [.25]Fix.GUI: Fix 'Keep Running' processes were sometimes associated with the PL main window, depending on if the GUI had launched the governor or not
- [.25]Fix.All: Fixed a command line parsing issue with quote encapsulated paths
- [.25]Change.Build: Improved speed of build environment (internal)
- [.25]Fix.Log.subsystem: Fixed global log folder command line specification
- [.25]Fix.Log.subsystem: Fixed a string reference not properly defined as const and written to improperly by a subfunction (no actual bug manifests as it was unused)
- [.25]Addition.Core: Added new log entry indicating the log path
- [.25]Change.GUI: Changed first minimize to tray message so it is slightly less ugly
- [.25]Fix.Portable: Disabled manual updates, automatic updates now work for this edition
Portable Edition: Changing distribution format
Posted on 13:21 by Unknown
I was contemplating the Portable Edition and it occurred to me that we're going to be better off if I simply distribute an archive of all the Process Lasso program files, instead of a single self-extracting archive that extracts and runs on-demand. The reason is simple: Updates. The former requires a complete (and different) update mechanism. I'm working on building this now, along with other improvements to the Portable Edition.
Additionally, the log and configuration files will now be stored on the removal media. This will allow you to take your settings and log events around with you. These locations can easily be changed via the batch file.
Additionally, the log and configuration files will now be stored on the removal media. This will allow you to take your settings and log events around with you. These locations can easily be changed via the batch file.
Product description and marketing maintenance
Posted on 10:11 by Unknown
I've been working on improving the product description, updating the web pages and site, and creating some new marketing images. Frankly, few people realize the true capabilities of Process Lasso. There is nothing more annoying than having people quickly dismiss it as yet another task manager. Of course, if they read the existing description they'd know that isn't true, but still it is frustrating. Towards this end I've planned some new ways to convey the multitude of features. I've also got a new web site design in progress, something I've wanted for a while as frankly I am sick of looking at the existing web site. Sadly, one of the hardest things in the world for me is to make things look attractive, though I suppose that is obvious ;).
I've also decided to reduce the frequency of the nags in the next version, as I don't want them to be too annoying. The advanced features should be what compels purchase, and honestly I don't think the existing nags are very annoying. I often run the free version myself for weeks on end, and they aren't annoying enough to me to register my own program. Still, they can be toned down a little without any major effect on licensing, so I'll be doing that. Keep in mind these fast click-through nags with *NO* timer are vastly preferred over what many freeware programs do: add toolbars and other crap to the installer. Those who complain about the nags should consider the alternatives, and I mean *real* alternatives that take into account the real world.
Of course, my licensing aggressiveness typically goes up and down, as I struggle to find and maintain a balance. I want Process Lasso to be as free as possible, that's the absolute truth. However, I also simply must generate enough revenue to cover the costs of Process Lasso and my other projects. Heck, web hosting and related services alone cost me $200 a month now. The automated updater was a part of that, as I simply had to have a reliable primary web server if I was going to offer automated updates. I got by on shared servers for many years, but this year it became clear my time with shared hosts was over.
I've also decided to reduce the frequency of the nags in the next version, as I don't want them to be too annoying. The advanced features should be what compels purchase, and honestly I don't think the existing nags are very annoying. I often run the free version myself for weeks on end, and they aren't annoying enough to me to register my own program. Still, they can be toned down a little without any major effect on licensing, so I'll be doing that. Keep in mind these fast click-through nags with *NO* timer are vastly preferred over what many freeware programs do: add toolbars and other crap to the installer. Those who complain about the nags should consider the alternatives, and I mean *real* alternatives that take into account the real world.
Of course, my licensing aggressiveness typically goes up and down, as I struggle to find and maintain a balance. I want Process Lasso to be as free as possible, that's the absolute truth. However, I also simply must generate enough revenue to cover the costs of Process Lasso and my other projects. Heck, web hosting and related services alone cost me $200 a month now. The automated updater was a part of that, as I simply had to have a reliable primary web server if I was going to offer automated updates. I got by on shared servers for many years, but this year it became clear my time with shared hosts was over.
Saturday, 4 June 2011
v5.0.0.24: Re-enable full self memory optimizations
Posted on 17:14 by Unknown
Welcome to v5.0.0.24. I do have more work ongoing, but am launching this build with well tested changes I've been wanting to make for a while. The largest is that full memory optimizations in the core engine have been re-enabled. Some of these optimizations were disabled a while back as I evaluated a bug I'd seen. I tracked down and addressed the bug, and after some lengthy memory utilization testing, I am ready to release this build with them re-enabled. CPU use and memory utilization of the core engine will be improved with this build.
- [.24]Change.GUI: Hide unavailable I/O priority column by default in 2K/XP (for new installs or listview reset)
- [.24]Change.Installer: Don't warn about Terminal Services disabled
- [.24]Change.Core: Decreased memory utilization in environments with a lot of processes
- [.24]Change.Core: Re-enabled full memory optimizations, they had been disabled in a previous build while I studied utilization
- [.24]Change.Core: Removed non-visible debug output entirely, a call stub had previously remained.
Friday, 3 June 2011
v5.0.0.23: Fix some minor issues, larger update being tested still
Posted on 11:47 by Unknown
My source code repository and virtual development environment lets me do some cool things. For instance, I've got some large changes I'm still testing, but I wanted to go ahead and release a minor update to correct a few little cosmetic and GUI quirks. Thus, I'm launching v5.0.0.23, as I'm unsure how much longer it will be until I'm done with other, larger, changes for v5.0.0.24.
- [.23]Change.GUI: Added more assertive cleanup of auto update archive
- [.23]Fix.GUI: Fixed new throttle dialog warning truncated and corrupted
- [.23]Fix.GUI: Fixed 'Edit INI' Advanced option
- [.23]Change.All: Reworked log queue synchronization object
- [.23]Change.Core: Reworked hard throttle mechanism - Note this is not ProBalance, this is a separate non-recommended function for advanced users
- [.23]Change.Core: Changed throttle timing levels quite a bit, should offer wider range of hard throttling
Wednesday, 1 June 2011
New minor update coming soon
Posted on 08:10 by Unknown
The next minor update will fix a few little issues with the GUI and make other improvements. This build does need more testing than previous minor updates, hence the delay. I've already accomplished most of what I plan to, but am making sure this is a good build. I'd like for this to be the last minor update for a while.
Subscribe to:
Posts (Atom)