TweakHound's Super XP Tweaking Guide

 

Bad Tweaks

   The following is a list of XP tweaks that either do not work, do not work as advertised, or that are better left alone.

   Many of these once worked in some version of Windows and virtually every tweak guide and program use these tweaks. My guide also used to contain some of them. It has taken a considerable amount of research and testing to come to these conclusions. While others have incorporated these into other guides and tried to pass it on as their own work I've done the investigation and benchmarking (and AFAIK I was the first to publish these en masse on the web). I've Googled up one side of the net and down the other. Sometimes I think I've seen every page at Microsoft. I've hosed installs, applied and removed settings, and spent more time tracking the registry than I care to admit (far more than I would like my wife to know about!).

This was the first such page to dispell such myths enmasse.

 

Memory Optimizers

I've long railed against these things. The only thing that these programs can do is harm real system performance. My advice, stay away from any "memory optimizer" programs. Don't believe me? How about taking renowned Windows guru Mark Russinovich's word for it? In his article entitled The Memory-Optimization Hoax, RAM optimizers make false promises he lays out the argument better than I ever could. (I can't reprint the article because of copyright.) His conclusion is that these programs are "fraudware" and he has "yet to see a RAM optimizer that lives up to any of its claims." Nuff said!

 

Prefetch Parameters

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters]

"EnablePrefetcher"=dword:00000005

 

First, I fail to see where any advantage is gained by messing with the prefetch settings. While disabling the prefetch service (or only using setting 1 or 2) can speed boot times it only hurts overall system performance.

Most tweak guides and popular tweaking programs use a setting of 5. There is no documentation to suggest that this setting works. MS states that valid values are 0,1,2,3 and that this setting is anded. The default value is 3. I tested using a setting of 5 on 3 occasions and there was no real improvement in boot times and hard drive activity was longer at boot.*

Prefetching is a good thing, leave it alone. In addition well written disk defrag utilities such as Raxco's Perfect Disk use the layout.ini information for its optimizations.

 

Clean The Prefetch Folder

As stated above, Prefetching is a good thing, leave it alone. In addition well written disk defrag utilities such as Raxco's Perfect Disk use the layout.ini information for its optimizations. There is one possible and optional exception to this, see the " Clean, Defrag, Optimize " section of this guide for more info.

 

More about Prefetching

It still amazes me that anyone suggests messing with Prefetch settings and files. They often quote their own "benchmarks" as a source of info as to why you should mess with the settings. I've spent over 3 years researching, using, testing, and tweaking XP. I can guarantee you that the default settings for Prefetch and the way XP manages it is the way to go. Anyone who suggests otherwise simply does not understand the process.

Wanna research it yourself?

Google search: prefetch+"windows xp" at microsoft.com

http://msdn.microsoft.com/msdnmag/issues/01/12/XPKernel/default.aspx

Windows XP Prefetch, clean it? NO !

 

Superfetch

There has been much ado of late about the existence of a " Superfetch " or " Superprefetch " setting. There is no such setting in XP.

http://www.edbott.com/weblog/archives/000863.html

http://bink.nu/Article4556.bink

 

Always Unload Dll's

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer]

"AlwaysUnloadDLL"=dword:00000001

 

Here is the first and most important point. I can find no evidence whatsoever that this setting works in Windows XP.** In fact, the only official Microsoft technical documentation I can find on this is here. It clearly and unequivocally states,

"For operating systems prior to Windows 2000, you can shorten the inactive period by adding the following information to the registry.

HKEY_LOCAL_MACHINE Software Microsoft Windows CurrentVersion Explorer AlwaysUnloadDll"

 

For arguments sake, let's just say that this setting does work in XP. Windows XP uses a complex and efficient process to manage memory operations. It keeps the dll loaded in case you need it again. For example, if you open XYZ and then close it the dll remains in memory. If you open XYZ again it will launch quicker because the dll is already in memory. When/if XP needs the space in memory for something else it will make the space by unloading the dll(s) that aren't being used. If this setting actually did work, you have hurt your overall performance because you unloaded a dll when it didn't need to be and caused the system to have to load it again when called upon.

note - For those who state that this tweak would only work in IE. The key is "Explorer" as in the shell, not "InternetExplorer" the browser. Also, whether you make a new key, sub key, entry, or any combination makes no difference.

 

Set Irq Priority

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\PriorityControl]

"IRQ8Priority"=dword:00000001

I can find no documentation that XP supports this setting. I can find no evidence that this setting works in XP.** If it did work I fail to understand any advantages you might gain. I'm not even sure if it's possible to reassign IRQ priorities in this manner XP and if you could I'm pretty sure that this key wouldn't be how you do it (XP uses/accesses/manages IRQs differently than previous versions of Windows).**** They use irq 8 because it's (usually) the CMOS/real time clock.

 

Disable Paging of Kernel

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]

"DisablePagingExecutive"=dword:00000001

 

Under all but the most very extreme circumstances it does nothing. What this setting does is force XP to keep the kernel (the core of the operating system) in RAM. This means that the kernel will reside in the fastest storage area in your computer. Sounds great right? Guess what? XP does this anyway unless the system comes under such an extremely heavy load that it needs the space. The very millisecond that the system has free memory, it will put the kernel right back into RAM. If the system is in such dire straights that it needs to use the space that the kernel is using I would say you are on your way to a crash and you better let whatever wants the space have it. You also better add more memory ASAP.

 

Large System Cache

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]

"LargeSystemCache"=dword:000000001

 

This setting is also achieved by going to Start > Settings > Control Panel > System > Advanced > Performance Settings > Advanced > Memory usage = System Cache.

 

Under XP this tweak could be of some value under various odd circumstances. However, it causes problems with many drivers/hardware/applications.***  This tweak is really designed for machines running as a server. If you use this tweak and have problems don't be whining at the driver/application writers for writing code that takes advantage of the way XP uses memory. They didn't ask you to turn your machine into a server.

 

IoPageLockLimit

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]

"IoPageLockLimit"=dword:somevalue

I can find no official documentation on this regarding XP. Suggestions seem to indicate that this setting doesn't work on any NT based OS from W2K SP1 and beyond. I can find no evidence that this setting works in XP.**

 

Optimize Boot Files

There are 3 keys related to "tweaks" about optimizing boot files:

1:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction]

"Enable"="N"

Quote from MS:

"Accepted values for this entry are Y or N. If the entry is set to Y, Windows automatically optimizes the file location for boot optimization. This optimization occurs automatically if the system is idle for 10 minutes. Boot optimization improves startup time by locating startup files in contiguous clusters on the volume, reducing the movement of the disk head when reading the volume."

 

2:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OptimalLayout]

"EnableAutoLayout"=dword:00000000

Found in TweakUI under the "General" section, "Optimize hard disk when idle". XP already does this by default but this key is not in the registry. Either you or some application has to put this key in. The key exists so that a non-Windows disk defragger can manage the process.

 

3: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Prefetcher]
"BootFilesOptimized"=dword:00000001

First and most important, as far as I can tell this is an informational key, not a program setting key. Second, lets say it does change the program behavior, the default is to have XP optimize the boot files. So, why wouldn't you want this? Third, if you use a 3rd party defrag program it may/will modify or delete this value. Changing the existing settings may/will screw things up.

 

These keys have NOTHING to do with how the full/manual disk defragmenter works, as in when you run the Windows GUI disk defragmenter program (see note #5), this despite what many XP "experts" have opined. XP is set up by default to:

1 - Rearrange boot files when idle for a period of time (10 minutes).

and

2 - To do a "partial defrag" of files every 3 days (what bootvis does).

The "rearrange" part is where it finds all the files needed for boot and places them in one spot on the disk. (Prefetch value 1)

The partial defrag is where it does the same thing for all the items in the prefetch folder layout.ini file. (Combines Prefetch value 1 (boot) and 2 (apps) = value 3)

For best performance leave these settings alone, these are features not bugs. Well written disk defrag utilities such as Raxco's Perfect Disk may/will adjust these settings because it is now managing your drives defragmenting process.

 

 

*****Conclusion

I'm sure some will argue with my conclusions. I'm always looking for information about new tweaks and why tweaks either do or do not work. I will entertain arguments about this information but I will require a few things:

1 - You must submit documentation for your argument from a legitimate source. In matters involving the registry it should be from Microsoft or from some entity of equal weight.

2 - I hear things like "my benchmarking" and "my tests". That, to be quite frank, is a load of crap. What "benchmarks"? What "tests"? Any benchmarks/tests used in your argument must be fully documented. They must also be able to be replicated and if your argument has any merit, I will attempt to do just that. If it can't be replicated it fails the scientific method and the argument is null. I've already benchmarked/tested these settings extensively.

   I know this sounds rather harsh but I get email from people wanting to argue this without anything to back up their argument.

 

You can get a printable version of this guide for $5 (U.S.) See here for more info.

 

Footnotes

 

*boot times were measured using bootvis. The average of the 3 boots using a prefetch value of “5” was within .10 seconds of the average of 3 boot times with a setting of “3”. Though not timed, hard drive activity was noticeably longer at boot (I’ve got a noisy Raptor). Others have noticed this effect too.

 

** Registry monitoring tools JV16, Regworks, and Regmon were used. I can find no evidence that this key was EVER accessed.

 

***This tweak is known to effect ATI video cards, storage devices, and several benchmark applications amongst other things.

 

****see the MS document Scheduling, Thread Context, and IRQL

 

Note #5 – Actually you could but it would involve using command line switches. ( defrag c: -b )