Streamlining Windows 9x/Me
Tuning Windows 9x/Me

If operating systems were cars, Windows 2000 would be the current high end luxury coupe, Windows NT 4 an aging but reliable conversion van, and Windows 3.1 would be the old beater that parents buy for their 16-year-old leadfoot children to keep them from borrowing their Audis. (Actually, we take that back--most computer cognizant kids over the age of three would think Windows 3.1 is very uncool). Windows XP would be a highly anticipated sportster. Unix and BSD would be fancy European vehicles that are best left to the hands of experienced professionals, and BeOS would be a nifty experimental car that everyone admires but nobody buys. And of course, some people (who've been around since the dawning of the PC age) might still prefer the simplicity of DOS and CP/M.

Where would the Windows 9x/Me series fit in? While some folks may call it the equivalent of a Yugo, it's more like a midrange minivan or station wagon just out of warranty: it usually gets the job done, but it tends to stall and it's a maintenance nightmare. Like it or not, it's also the most widely used operating system series in the world.

With the right tools, any car can be made to run better. Likewise, with the right tweaks, even the clunkiest old OS can be transformed into something a little speedier.

This story will help you better tune your existing Win 9x/Me configuration. We will not specifically recommend upgrading your hardware in this story, though clearly you may get much better performance with fresh new high-end hardware. Our goal here is to allow you to get the most out of your existing hardware configuration, though we may recommend a performance optimizing software utility or two. ExtremeTech will be delivering system upgrade stories separately.

Microsoft's Win 9x/Me consumer operating systems are regularly panned by the tech community for being unstable, slow, bloated, and generally underwhelming. (Going forward, we may simply refer to 9x/Me as either 9x or Me). They are, however, a necessary evil: they're tops in compatibility for the vast majority of commercial apps and games on the market, and they're more or less backward compatible for folks hooked on old apps, devices or games. In fact, some people maintain that it's this intense focus on backward compatibility that's the root of some of Windows 9x stability problems. That compatibility means that older .VXD style drivers are still used, some 16-bit code still exists and even DOS drivers can still be loaded in Windows9x, not Me.

Microsoft is, of course, the forever-reigning king of bloatware. The company is well known to cram more extraneous programs into every new version of its operating systems, and more features into every new version of those programs--and about 5% of users worldwide ever actually become aware of the added features (much less USE them).

Not only does Windows 9x come pre-bloated with dozens of needless features, but Windows adds to its own girth by collecting drivers, registry entries, DLLs, .INI files, and other remnants of programs--and keeping them forever. Did we compare operating systems to cars? Maybe we should have used people as the metaphor: if OS's were humans, Win 9x would be a morbidly fat guy who takes up two seats on a plane.

There exists a myriad of tips and techniques that can speed up your Win 9x PC's performance. (While most of our tips are geared to 9x/Me, many may also help Win 2K/NT). Purging the background clutter, hosing out the registry, streamlining the file system, boosting the storage manipulation, and thinking a whole lot of happy thoughts will cut down on load times, crank up frame rates and get Windows churning along like a thoroughbred.

Microsoft isn't the only guilty party in the background clutter arena. Many commercial and freeware applications, from media players to financial suites, love to clog Windows' arteries with chunks of their code. Some, like Logitech's MouseWare and RealNetwork's RealPlayer, leave little control applets in the background to let you adjust settings without actually launching anything. Others, like Intuit's Quicken and Microsoft Office, plop libraries and other parts of their programs to cut down on the load time when you actually invoke the applications. In these and many other cases, the background junk isn't really necessary to operate the programs, and most actually sap resources.

Contrary to what many users are lead to believe, Windows resources rarely directly affect performance. Resources are often mistaken for system memory, but the two are different entities that work in parallel: resources contain location data to help Windows find everything that's in system memory, and they take up small portions of specific memory areas themselves. The percentage of free resources is, however, a generally clear indication of how well the system will perform if you fire up a game or a taxing application, which is why they're mistakenly blamed for performance problems.

System resources are stored in five fixed heaps. There are two 16-bit heaps, which exist for the sake of backward compatibility, that are fixed forever at 64K each, and three 32-bit heaps that weigh in at 2MB each.

Information stored in the resource heaps is separated into two categories: User and GDI. Each use one of the 16-bit heaps. The User component uses two of the 32-bit heaps, and GDI uses the other. The User component tracks input from the user (keyclicks, mouse action, I/O ports, and so on) and output for the benefit of the user (audio, windows, icons, fonts, and such). GDI stands for Graphics Device Interface, and its resource heaps manage low level graphical functions: primitives, brushes, cursors, printer output, and so on.

You can monitor your system's resources with a utility like Windows Resource Meter (select Start/Run and type in RSRCMTR, or Start/Programs/Accessories/System Tools/Resource Meter). Note that the resource meter is specific to Win 9.x and Me, but not Win2K; Windows 2K handles resource allocation differently. There are also several commercial, shareware, or freeware utilities. Most will show you the amount of used and/or free User and GDI resources as a percentage. The Windows Resource Meter also displays "System Resources" remaining, which is simply the lowest value displayed among the User or GDI resources remaining. You can get a quick glance from Windows through Control Panel's "System" selection under the Performance Tab, or by selecting About Windows from a Windows Explorer pull-down menu. In these latter cases, Windows will show you one percentage, that represents the available resources of the GDI or User heaps, whichever is lower.

You can recover Windows resources by closing things. Theoretically, shutting down applications and background programs should release their resources, but not all applications release their resources upon closing. Apps that fail to vacate their resources are said to "leak." The best way to recover leaked resources is to reboot.

One of the biggest contributors to Windows lethargy and low resources is background static. By this, we refer to programs, applets, and other bits of code that hover around in system memory, sucking up CPU cycles, and hot-tubbing in Windows' precious resource pools. These garbage items are the fatty cells in Windows' belly, and evicting them will result in a trimmer, stronger and altogether sexier (OK, maybe we're going too far with this analogy…) operating system.

Problematic items include everything from programs that load when Windows starts, some of which display icons in your system tray (see section below on TSRs and SysTray Applets), to other stuff you might not expect to cause a problem, like desktop icons, wallpaper, Active Desktop, and registry bloat. Each of these items contributes to performance degradation in its own little way.

Keep the Desktop Clean

When your real desktop (that physical thing that houses your computer, telephone, etc.) or workspace becomes ridiculously cluttered, your work probably suffers. If you have to spend ten minutes looking for an all-important file buried among old memos, printouts that you never really needed, half completed forms, ancient coffee cups containing biological mold experiments, etc., you can chalk up those ten minutes as "lost productivity."

Windows has a similar problem. The more cluttered its desktop, the less efficient Windows works. Everything on the Windows desktop--your Angelina-Jolie-as-Lara-Croft wallpaper, the piles of icons pointing to programs, files and stuff that you have no idea what it is, and, god forbid, Active Desktop elements--are kept in memory. They're also continuously refreshed by the graphics subsystem. That makes them all resource hogs.

Owners of powerful systems are less likely to notice a difference in performance by eliminating wallpaper and desktop icons. If you're cruising around in a dual-Athlon with a gig of RAM, it's safe to leave them alone (they'll still occupy resources, but the performance hit is negligible). If you're nursing a PII with limited memory, however, keep your icons relegated to the Start menu and turn off desktop wallpaper and patterns.

If some of your desktop icons aren't duplicated in the Start menu, you can move them there instead of deleting them. The easiest way is to open up an Explorer window and navigate to C:\Windows\StartMenu (or whatever drive and folder your Windows installation resides in). Then create a group wherever you wish (perhaps \Programs\Desktop Icons) and simply drag your desktop icons into it.

Active Desktop is a curse to any system. Turn it off. Right-click in an empty area of the desktop, navigate to the Active Desktop item in the context menu, and make sure Show Web Content is unchecked.

You can get an idea of how many extraneous applets are running by bringing up Windows' Close Program dialog box under Win9x/Me, with the three finger salute (simultaneously pressing CRTL-ALT-DEL). Under both 9x and Me, you can also bring up Start/Programs/Accessories/System Tools/System Information/Software Environment/Running Tasks. Take a look in the list of programs that appears: it shows the applications and various other tasks running on your PC. You can recover resources and CPU clock cycles by closing all of them except Explorer (or whatever Windows shell you're using), and Systray.

Note that some devices and applications rely on background applications. Force feedback mice that use Immersion's TouchSense, for instance, require an applet to reproduce their forces in Windows and compatible games. Speaking of games, lots of gaming input devices that use software overlays to remember command macros will default to the DirectInput devices without their TSRs. (And for those not familiar with the term TSR - it refers to Terminate and Stay Resident programs, and dates back to the days of DOS, and was likely used in other computing environments).

Alternately, some background programs are not only useless, but also invasive. Spyware applets, which collect information about your system and send it to their authors' companies or data warehouses, are sometimes contained in adware programs, which, bound symbiotically with many freeware programs, ostensibly display banners or other Web-centric advertising to provide revenue for the publishers. Spyware and adware can hog system resources and clog your Internet connection's bandwidth.

Freeware itself is usually innocent; the spyware is provided by an ad system such as Aureate, Web3000 or Gator. According to Dick Hazelegur's spyware list, the popular download manager Gozilla v.3.5, for instance, contains Aureate spyware, and Netzip uses an ad engine called Timesink.

Use the Close Program dialog to experiment and determine which background apps you can and cannot live without. Then, use Windows 98/Me's System Configuration Utility (SCU) to prevent the ones you don't need from loading at all.

Fire up the SCU by running selecting Run from the Start menu and punching in MSCONFIG. A smallish window with lots of tabs will appear. The tab you're most interested in is the Startup tab, but first take a look in the Win.ini tab. It shows a list of each of the lines in your WIN.INI file organized into groups, but not in the form of a simple text interface: in the SCU, each line is preceded with a checkbox. You can uncheck lines to prevent Windows from executing them, but the change isn't permanent--it's the equivalent of commenting the line out in a text editor (as you may have done with the Config.sys and Autoexec.bat files in the past).

If you expand the [windows] group, which is usually at the very top, you'll see a pair of lines that begin with load = and run = respectively. If anything follows the equals signs, it may refer to a program that loads into memory when Windows starts. Uncheck the afflicted line. Since the WIN.INI file is included for backward compatibility for Win 3.x programs, you should check your legacy applications and devices to be sure that they function properly without their applets loaded.

Return to the SCU and check out the Startup tab. The list box displays every program and TSR that is flagged (either through the Startup program group or the registry itself) to load when Windows starts up. You'll notice that most of the programs that you saw in the Close Program dialog box are there. Uncheck any of the ones you've already determined, or just have a hunch, are unimportant. Under Windows Me (but not Win9x), there is an option at the bottom right of the SCU that says "Cleanup", and it "verifies each entry listed, and removes items that do not reference a valid program, service, or file on the computer". That's worth giving a shot.

Confirm that the unchecked applets are truly unneeded by using your system normally for a few days. If all is well, you can get rid of the shortcuts and registry entries that launch them (see below). Items that used to be loaded through the Startup group (and are now unchecked) are relocated to a group called Disabled Startup Items-- simply delete the shortcuts from that group (and if you clean it out entirely, delete the group itself).

Use the registry editor to purge registry values that loaded unneeded programs. You can use a utility like RegCleaner (described below) or roll up your sleeves and do it manually.

Regardless of how you clean up the registry, create a backup before you make any changes! Fire up the Registry Editor by going to Start/Run and entering REGEDIT. Pull down the Registry menu, choose "Export Registry File...", and choose a name and location for your backup. Make sure "All" is selected in the Export Range section at the bottom of the dialog. If your registry gets hosed, you can restore your backup with the "Import Registry File..." menu item.

Use the Registry Editor to navigate through the Registry's folders (called keys); it functions almost exactly like Windows Explorer. Under Windows 9x/Me, the Windows Registry invokes background programs from two locations:


Items that have been disabled through your use of the System Configuration Utility will have been moved to a pair of keys in the same area, but which are terminated with a - (Run- and RunServices-). If you're confident that you don't need the TSRs that you've disabled through the SCU, purge the Run- and RunServices- keys from the registry.

Programs like Steve Gibson's OptOut and Lavasoft's AdAware are useful for searching your system for spyware and purging offending applications. Note, however, that removing a spyware program will probably disable the freeware application from which it was installed.

Reduce the Registry

The registry file is best kept small. It bloats as you use Windows; every time you install a program, a game, a hardware device, drivers, or pretty much anything that alters your system, registry entries are created. In theory, they're supposed to be removed when a given program or device is properly uninstalled, but not all entries are: Windows seems to keep a record of everything you've ever installed.

As the registry gets bigger, Windows gets pokier. That's because the registry is loaded into memory as the system starts. You can manually and painstakingly edit unused keys and values out of your registry, but that's simply impractical: it would take months, and there's no way to be sure of the practical necessity of each and every entry.

Microsoft provides a limited registry cleaning tool, but if you really want to be thorough, you should use a third-party registry cleaner. Each of the major utility suites, Norton Utilities and McAfee Utilities, includes one, but if you don't want the overhead associated with those multi-tentacled apps then use one of the many, high quality freeware programs. One of the best is RegCleaner, a compact applet that conducts a comprehensive search of your registry and weeds out unused, unneeded, and invalid entries.

Clean your registry at least once a month. If you install and uninstall programs frequently, you should clean it even more often.

Being an operating system, one of Windows' most primal reasons for existing is to help you, the user, do stuff with your computer. So much of what users do involves shuffling bits from disks to memory and memory to disks, so Windows spends a lot of time dealing with memory and disks.

The most ubiquitous storage medium, of course, it the hard drive. It doesn't matter if yours is IDE or SCSI, alone or teamed with others, partitioned, redundant, part of a RAID array, internal, external, hot-swappable, solid state, or based on top secret government alien nanotechnology--you use it all the time directly and indirectly through your operating system. Windows, therefore, can be tweaked to do it faster.

Speed Up Drive Access

Windows doesn't automatically optimize itself for speedy disk access. Even after a fresh installation, there are a number of optimizations that can be performed to increase performance.

If you're using IDE hard drives, make sure you have the latest drivers installed for your motherboard. They should be available from your board's manufacturer or the maker of its chipset. This is especially important if you're using Ultra-ATA drives; in some cases, your drives won't achieve their fastest transfer rates without the proper drivers.

Make sure DMA mode is enabled for your hard drives. Enter Device Manager by opening Control Panel, invoking the System applet and selecting the proper tab. Expand the Disk Drives item, select your hard drive, and click on Properties, choose the Settings tab, and make sure the DMA box is checked. (We must give you fair warning that setting DMA active may have problems in some situations. Some older core logic chipsets don't properly handle DMA-capable storage devices. Some older hard drives won't work in DMA mode, though they are increasingly rare. Some CD-ROM drives as recently as year-old models don't always work properly under DMA mode, either. Unless you have an early, first generation DVD-ROM drive (very rare), your DVD-ROM drive should work properly in DMA mode, as do most CD-RW drives. If you notice any instability after enabling DMA, you should probably disable it.

Note, though, that you should make sure the latest motherboard INF and driver files are installed. If you have a motherboard with a VIA chipset, you must have the VIA Ultra-ATA drivers installed for proper DMA operation with storage devices if you're using Windows 95, Windows 98 or Windows 98SE.

You can also optimize your drive cache through the System applet. Select the Performance tab, and click on the File System button in the bottom of the dialog. Make sure the Read-ahead optimization slider is set to Full (64K)--this tells Windows, when it accesses the hard drive, to place into memory the next 64K of data beyond what has actually been requested. Should that data be requested, it'll be accessed more quickly than if it had been left on the hard drive. Since the drive heads are already in the neighborhood, the performance hit of the extra read is nonexistent (in many cases the read-ahead data resides on the same disk track- for example, the new 80GB Maxtor 536DX drive has 403 sectors/track on its inside track zone, and 709 sectors/track on its outer track zone, and with 512 bytes/sector, that about 200K and 350K of data per track respectively).

Also, set the typical roll of the computer to Network Server, no matter what its typical roll actually is. This setting determines how many folder and file entries Windows' file allocation system, VFAT (Virtual File Allocation Table), keeps track of for a short time, in case they're accessed again. It's faster to pull them out of this little cache than to access them through the primary FAT table, and the maximum cache setting of "Network Server" only consumes 16K of memory.

Windows' File Allocation Table, or FAT, is essentially a linked-list data structure stored in the first few sectors of the hard drive that acts as an index, telling Windows where to find each file and directory stored on the bulk of the drive itself. FAT16, the legacy system used with DOS (the early versions of DOS used FAT12, which means 12-bits per FAT entry) and still available in Windows, felt more and more fire as hard disks became larger and larger. Its minimum allocation unit (cluster) size grows in proportion to the size of the hard drive partition, causing huge amounts of wasted disk space.

Microsoft introduced FAT32 about midway through Windows 95's life cycle. This updated file allocation system keeps its cluster size low, even on massive hard drives--but it's actually a little slower than FAT16. By using smaller clusters, FAT32 must keep track of more of them on a given partition than FAT16. Since FAT tables function basically as linked lists, more entries equates to slower overall performance.

Don't give up on FAT32 yet, though. On partitions larger than 32 gigabytes, it reaches its maximum cluster size of 32K, which equals FAT16's highest cluster size. At that point, the performance difference becomes negligible. Furthermore, the performance difference was much more pronounced on vanilla, 5400 rpm IDE hard drives than it is on today's 7200 Ultra-DMA and 10000-RPM SCSI drives. Worse, Windows 9x FAT16 partitions are limited to 2 gigabytes. That presents a problem with using FAT16 on today's gigantic hard drives--a 40GB hard disk would require 20 partitions!

Due to its better handling of space and its convenience with large drives, we recommend using FAT32 with Win9x, which should be the default for all Win98/Me installs anyway. There are better way to boost drive access performance.

The task of sifting for a particular file through the FAT system is a long and monotonous job. Windows first checks each entry in the root directory; when it locates its subdirectory or folder, it checks everything there, and so on, until it finally arrives at the file it's looking for. In the meantime, it may be swapping data back and forth from system RAM to "virtual memory," which is its paging or swap file. Residing on the hard drive, a paging file is treated by an operating much a short-term backup tank for items that would otherwise be in system memory, but aren't immediately needed.

Most operating systems experience a performance benefit if you keep similar or like data sets on their own partitions. For example, a typical high-performance system might have its operating system on primary partition C, its applications on logical drive F, data created with those applications on G, and its swap file all alone on S. I even use a separate partition just for games. This type of partitioning benefits the system by providing a simplified root structure of each directory that reduces the time it takes for Windows to find files, and boosts performance.

However, there are pros and cons to having the swap file isolated to a single partition. From a file/directory organizational standpoint, it's buried among the Windows directory structure and you know exactly where it is located. Having it locked to a partition of a particular size allows its growth to be limited to that size without hogging more of your hard drive. The downside is that it can't grow dynamically beyond the size of the partition, if need be. By default, Windows handles its paging file dynamically, increasing it as needed. If you create a dedicated partition, you need to know the largest amount of space your swap file could ever possibly need. The method of determining this is the subject of endless debate--some folks believe swap file size should be 2.5 to 3 times the amount of system memory in your PC. Other suggest that you reboot Windows, open every application you ever hope to use at the same time, and check the size of the WIN386.SWP file (which is the swap file itself) on your hard drive. Its current size should be your maximum swap file size.

I recommend the second method--and then to make the swap file partition about 20% larger. To wrangle the Windows swap file over to its new location, fire up Control Panel, launch the System applet, select Performance, and click the Virtual Memory button. Click the button next to "Let me specify my own memory settings," and select the drive letter to which you wish to move the swap file.

Of course, it's easiest to implement a multiple partition arrangement if you're starting fresh. You can't repartition a drive with data on it with Windows FDISK, and although you can with third party applications, there's still an issue with moving already-installed applications. If you repartition your drive with a working OS already installed, be absolutely certain to backup all of your critical data before proceeding. Consider using the latest version of PowerQuest's Partition Magic; not only does it make the job simple, through a Windows-like graphical interface, but its included Magic Mover transfers installed applications to new locations with a minimum amount of hiccups.

Even with your drive(s) neatly partitioned, there's an amount of directory maintenance you can perform to help expedite Windows' efforts in locating files.

Keep your root directory (or, if you elect to use multiple partitions, your root directories) clean. A full root folder means slower performance.

Organize files and programs into a well-structured system of folders. The fewer items Windows encounters in any given folder, the better--and that's especially true for folders that it accesses frequently. Instead of piling everything into /Program Files, for example, erect a series of subfolders in that subdirectory. Make a folder for business apps, one for utilities, one for games, one for Internet tools, and so on.

Try to clean up your \Windows and \Windows\System folders. Windows frequently pokes around in the depths of those caverns for drivers, .DLLs, .INI files, and other stuff, and they're clogged from the very beginning. Make a sweep for backup files (with extensions like *.BAK, *.OLD, *.001 or another number), text files, .DOC files, readme files of any other flavor, and other such nonsense, and move it into a folder subfolder off the \Windows directory. There are third-party programs specifically designed to sweep for such files, and Win9x/Me also include a Disk Cleanup utility under Start/Programs/Accessories/System Tools/Disk Cleanup.

If you've uninstalled programs or hardware devices recently, look for bits and pieces of them in your \Windows folder. Browse through the folder for .INI and .EXE files with recognizable names. For example, after removing a Lexmark printer, I found LEXHBP.INI in my Windows folder, which I no longer needed. Similarly, after removing a sound card, two application launchers were left in the folder as .EXE files, complete with incriminating icons.

If you don't use Windows default wallpapers or desktop patterns, you can remove the .BMP and .GIF files from the \Windows folder.

You can even shovel out some of Windows program files. If you don't use Windows' games, feel free to get rid of Pinball.exe, Freecell.exe, Winmine.exe (Minesweeper) and Sol.exe (Solitaire). Hyperterm.exe is Windows cheesy little terminal program, useful for little more than troubleshooting modems and, if you can deal with its interface, dialing into BBS systems if you still do such things. FTP.exe, of course, is Windows' command line FTP program, and Telnet.exe is a very simple telnet app--there are better versions of both available as freeware. Feel free to remove the crusty old Windows 3.x programs Winfile.exe (File Manager), Progman.exe (Program manager), Packager.exe (Object Packager), Net.exe (a network program from Windows for Workgroups), and Winpopup.exe (an instant message app for WFW).

Do not remove any .SYS files, .DAT files, WIN.INI, SYSTEM.INI, WIN386.SWP, or anything that might adversely affect system operation if removed.

After all your fussing and fighting to get Windows to a loamy, nutritious bed in which to plant your performance sensitive apps and games, you'll definitely want to put a little effort into keeping it that way. Left to its own devices, Windows will bloat right back up to the fat, lazy operating system it was before you worked your magic.


It's statistically impossible that, as a seasoned computer owner, you've never encountered instructions to defragment your hard drive frequently. You've been told to, probably more than once, by a magazine, program documentation, a Web site, the IT nerd at work, a baffled tech support geek with no other answer to your problem--someone has suggested it to you.

Well, do it. It really does make a difference. A neat, defragmented hard drive runs much more smoothly than a drive with files and programs scattered all over creation. In fact, if you've never experienced the difference, don't defrag your drive for a few months. Let it get all messy; the performance degradation occurs so gradually, you may not think it's really there. Then defrag your drive. You'll see and feel a difference.

Windows Disk Defragmenter does a satisfactory job of organizing programs into contiguous chunks and, with the help of Task Monitor (taskmon.exe, one of those TSRs we mentioned), keeping track of which programs you run the most so it can put them where Windows will see them first (and executing your common application loads most efficiently).

Then, get in the habit of defragging Windows at least once per week. Use Windows' Task Scheduler (another TSR--damn it!), or Windows Me Maintenance Wizard to automate the process and have it performed when you're not using your PC.

Good Habits

If you've taken our advice and developed a streamlined set of directories, you have to maintain it. That means sticking to your optimization and maintenance system and putting some thought into where you're going to install each program during the install process.

When you uninstall something, try to clean up after Windows--it doesn't do a very good job. Make sure the program folder and the Start menu group were deleted by the uninstaller, and do it yourself if they weren't. Run your favorite registry cleaner to sweep up any crumbs left behind.

In Closing

When all is said and done, somewhere down the road you will eventually be upgrading to a new super fast system and some day we'll all have trouble-free and self-optimizing operating systems, but until that day, we hope this story helps you today.

Copyright (c) 2005 Ziff Davis Media Inc. All Rights Reserved.


[ html rev. (add style: from *.css & <P> justify; dis. script & iframe; misc.):  Mar. 2005  pcd ]