Ask The Oracle

...A Tech blog for Engineers, Software Devs, and Computer Geeks

Rules for Well Behaved Window’s Utilities

Written by BobW on August 20th, 2010

There are many excellent software utilities available for Windows. There are also many other utilities that have great potential, but missed the mark because of poor program design. I am careful about the impact a program has on my computer. Sometimes programmers fail to realize that I use my computer for many tasks besides occasionally running their program. I may only run their program once a month and I expect their software to maintain a small footprint on my computer.

I have run into programs that use a ridiculous amount of resources, install lots of useless things on my computer, and generally annoy me. In order to promote good programming, I have come up with my list of “Rules for Well Behaved Window’s Utilities”. There are some utilities (network, anitvirus, email etc.) that have to run all of the time. These utilities should clearly state their runtime requirements and demands on my system. Then I can decide if it is worth installing them. Utilities that do not follow my rules will not be recommended and are banned from my computer.

1) Do not stay resident in RAM. The application should run, do its thing and then close. Most utilities do not need to remain running after I’m done with. Disk space is relatively cheap. If your program is big, make sure it loads from disk only when needed and that it leaves no footprint in RAM after it closes. I don’t need a tray icon (with its multi megabyte RAM task) so that I can run it again. I can always run it from the Start Menu.

2) Be small. If the utility needs to resident in RAM, then it must be small. This means a small RAM footprint and small disk size. A dozen or so utilities in RAM can quickly eat up lots of RAM, increasing system startup time, and slowing down my computer. If the program has to be large, then follow rule #1.

3) Do not permanently install device drivers. They occupy wasted RAM space. Windows allow you to install (and uninstall) device drivers dynamically as needed from the program itself. Don’t leave them loaded all of the time. I do not want drivers sitting permanently in RAM for programs that I use very rarely. Not only does this increase swapping and system load time, these unused utilities increase the chance of driver conflict problems.

4) Do not install any other programs without my permission. I have had to uninstall the Yahoo toolbar many times even though I never purposely installed it. I have seen utilities that load 4 or 5 separate tasks in memory. These tasks stay in memory after I’m done with the program. I don’t want to spend my time hunting through the installed program list or the Task Managers active list for “stealth programs”.

5) For maintenance operations use the Task scheduler. Many programs (Java’s jusched.exe routine for example) install a RAM resident program that just runs once a month to check for updates. That is a waste of RAM. A more efficient method is to add an entry to the Task Scheduler (Google Voice does this) for a disk based update program that runs once a month. This allows the update program to run, check for updates, and remove itself from memory. (see Rule #1)

6) If it needs a tray icon, add an exit function on the tray context menu to remove the program from memory. Even better, add a configuration option to allow me to decide if the program should even load a tray icon in the first place. Too many utilities stick around in the tray after they have been used and have no removal mechanism (other than uninstall). Do not assume that I want the program to load at startup.

You must be logged in to post a comment.