Get it All

Even though Windows is designed around the idea that anything you would wish to change about the Registry should be available in GUI form, this is not always not the case. There are a number of performance tweaks to be found within the Registry for which there are no controls within the Operating System, and it is these performance tweaks that this post is dedicated. Once again, this is by no means a complete list, but rather a guide to some pretty-darned good ones.

A word for the uninitiated: if you’ve never played around with the Registry, this is probably not the tutorial with which to start. In some cases, I suspect that these tweaks have no GUI eqivalent primarily because if anything goes wrong with them, you can render your OS inoperable. Always backup your Registry before beginning, and you might even want to consider backing up any files you need, because there are things with Windows Operating Systems that you cannot take back.

OK, so enough of this wool-gathering. Let’s get to the meat of the article. Due to the repetitious nature of Registry hacks, I will be abbreviating the names of the top hives from (for example) HKEY_LOCAL_MACHINE to HKLM. Got it? Good, let’s get started:
Tweak #1: Shutdown Service Timeout

Ever notice how long Windows takes before it even starts to shut down? That is a setting in the Registry which you can hack. Open Regedit and navigate to: HKLM\System\CurrentControlSet\Control and look for the variable WaitToKillServiceTimeout. It is currently set to 20000, which is 20 seconds. Set it to 0 and see what happens.

Tweak #2: Menu Delays

When you hover over a scrolling menu such as the Start menu items, “All Programs,” the system actually waits a predetermined amount of time before automatically expanding that menu. I find this annoying, how ’bout you? Open Regedit and navigate to HKCU\Control Panel\Desktop and look for the varible named MenuShowDelay. You can set this value to whatever your preference may be.

Tweak #3: Auto-Kill Programs at Shutdown

Nothing worse than having to wait for all those programs to shut themselves down before you restart the PC. Why not let Windows just kill the damned things and be done? One word of caution, though: make sure you’re in the habit of saving documents regularly, or you won’t have a chance to do so if you’ve forgotten it and shut the system down!!!! Open Regedit and navigate to HKCU\Control Panel\Desktop and then toggle the AutoEndTasks varible value to 1.

Tweak #4: Disabling Memory Paging

In normal use, Windows XP creates a page file from RAM onto the HDD. We can disable that function within the Registry, but note that only those with very large quantities of memory (above 256, and really, above 512 to be safe) will want to even consider doing this. Navigate to HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management and toggle the DisablePagingExecutive variable from 0 to 1.

Tweak #5: Enabling Large System Cache

Enabling this setting pushes all but 4mb of system memory to the file system cache, which in other words means that the entire kernel is running in memory. Two caveats are associated with this tweak, the first being that (once again) only those with a significant amount of memory should even bother tryin this. Secondly, this consistutes a significant improvement in performance for the Operating System, but can actually degrade performance of memory-intensive applications. It’s probably best to make a decent benchmark of your most important applications first and then make the Reg switch and see if that makes your performance better or worse. Navigate to HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management and then toggle the LargeSystemCache variable from 0 to 1.

Tweak #6: Improving I/O File Transfer

This one is only really available for those of you running servers, but will improve performance for large file transfer operations. In fact, the variable is not even present by default, and this will require you to create the key in most instances. In the HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management hive, create a REG_DWORD value called IOPageLockLimit. On those systems for which this key is enabled by default, the default value is usually around 512k and is valued in bytes. Most people get improved performance in the 8 to 16mb range, you’ll have to play with the settings to see what works for you. Keep in mind that since this value is represented in bytes, you’ll need to do a bit of math to get to, say, 12mb. 12 * 1024 * 1024 = 12582912.

Tweak #7: Damn That File Sharing Wait!!!!

How many times have you smashed your head against the side of your cubicle waiting for the damned files on a network share to show up so you can work? Can you believe that this is intentional on Microsoft’s part? Indeed, the system checks the scheduled tasks on the remote computer before reading the directories, a task so useless, it’s breathtaking. This takes 30 seconds out of your day every single time you access a network share, and that adds up to constant annoyance as I’m sure I don’t need to tell a lot of you. Navigate to HKLM\Software\Microsoft\Windows\Current Version\Explorer\RemoteComputer\NameSpace and find a key called {D6277990-4C6A-11CF-8D87-00AA0060F5BF}. Just delete that mamma-jamma and after a restart, PRESTO! No wait time.

Whoopha!!  That’s a pretty good list for now, wouldn’t you say?  But it’s not the end, not by a long-shot, and in fact some of the best is yet to come, so stick around!