Windows XP Performance Tweaking Guide
This guide has stood the test of time just like Windows XP as an operating system has. We've been playing around with Vista now for quite a while but we believe XP is going to be around as the primary OS for many more years. As we all give MS a great big finger and avoid migrating to Vista lets try to get all we can out of the best OS Microsoft has to offer.
This guide was originally posted more than 5 years ago now and even after all this time I'm still around to help you guys get more out of your systems. Please read this title very carefully because this guide is ONLY intended for Performance related tweaks. There's millions of other "tweaks" that other guides use but have nothing to do with performance. In this guide I'm ONLY including what actually has some kind of affect on performance. I am trying to keep this guide dedicated to tweaks that directly affect your performance. I've also written a tweaking guide for the paranoid which can be found here. I'll be creating a customization guide and also a more detailed/serious security tweaking guide whenever I find the time.
You'll want to keep an eye on our tips page for the latest in windows tweaking. Things usually get posted there well before they can be found in this guide.
Disclaimer: There's a LOT of potential damage that can be done with the data within this article. You will have to understand the risks. You could potentially cause your system to quit booting and many other things. You will want to make a backup of anything important just in case. Please move on if you understand that and are willing to risk things.
What are the tools of the trade?
HijackThis! - Nothing helps clean up your system quite like HTJ. You can get a quit outline of what it does and how to use it here. It will output a log file for you and our analyzer program is a great way to quickly look over what is on your system and telling what that stuff is.
Notepad - With this baby you can get out of having to spend much time in regedit ;) What you will want to do is create a file call tweaks.reg on your desktop. You need to add REGEDIT4 on the first line. After that files has been created right click on it and select edit. Next paste what I have in italics into that file. You will have to read what I have said about each tweak and you'll have to change some of them according to your system. Some people have reported they had to start with a filename of tweaks.txt paste the contents in and then rename it to .reg when they're done.
Regedit - Knowing how to use it to edit your registry is a MUST for this guide. It is the only tool that we're using here.
Alot of these tweaks can be done through various tweaking application but what kind of a guide would this be if I only pointed you to software? Also the only source to go to about services is http://service.iamnotageek.com/
Gaming Tweak - Quickly stop services .bat file
Tracking Down Non-Microsoft Services
tracking down and removing
Startup Programs
I posted a good overview of what you'll find in TuneXP right here.
MSconfig
You can also easily disable any services that you don't need through this handy application. Check the box that says hide all Microsoft services if you're interested in seeing what non MS services are currently on your system. You might be surprised... Only use MSconfig to do this for testing purposes. There is a much more powerful application made specifically for service management. start -->run services.msc From there you can change more, but for simply turning them off msconfig does that. To quickly turn off certain services temporarily to play games check this article out HERE. |
Spyware
I personally use Ad Aware. Making sure that you don't have spyware running around your system like crazy is a very important part of optimizing your system! It certainly doesn't hurt to scan with 2 or 3 different anti spyware programs. We've created a HijackThis! forum for people to post their logs for members of this site to look over closely and give you suggestions of what to keep and what to remove. You'll want to read this thread before posting.
Make sure that you've run ad aware and Spybot BOTH using the
latest definitions possible.
Adaware guide:
http://articles.networktechs.com/286-p1.php
Spybot Download:
http://articles.networktechs.com/420-p1.php
Viruses:
Make sure you run an up to date virus scanner at least weekly to go over every file on your hard drive. If you notice some processes running with some very strange .exe names you'll want to check your startup because you most likely have a virus! http://housecall.trendmicro.com/
File System
Your drives are the biggest bottleneck in your system and there's a few things that you can do to greatly improve the performance of them. If your main use for your computer is running applications all day long this is of course a MUST! Surprisingly the biggest things that slow NTFS down are "features".
You'll want to read a couple of additional articles.
Windows File System clusters explained
Hard Drive Size being reported wrong in Windows
Deleting Windows junk to save 1Gb of space!
Automating Disk cleanup
Turn off indexing
The newer version of NTFS introduces some new "features" One of these is a file indexing thing that enables you to search for files and also text within files very quickly. How is this done? Well... every time you add a file it is logged into a DB that can eat away at your drive space rather quickly and slows you down while doing so. I would suggest everybody turn this off because I don't know of anybody who does enough searches on their drives to sacrifice as many resources as this does.
1. Browse to your hard drive either through Windows Explorer or through
my computer Alternate method is disabling the indexing service. I'd do both if I were you ;) |
Convert Fat 32 to NTFS
I won't bore you with the details about the differences between NTFS and Fat32. You'll just have to trust me on this one. NTFS is faster and more secure than Fat32 is on larger drives. On smaller like sub 25Gb drives Fat32 is faster. NTFS's speed advantage only kicks in on higher capacity drives. There's a rather simple command that isn't very easy to find that will convert your FAT32 partition to NTFS. Open the command prompt by hitting start and then selecting run and type: "Convert C: /FS:NTFS". Replace C: with whatever the drive letter you'd like to convert is. Also make sure there is a space between the C: and the foward slash (/). Once you press enter it will ask you for confirmation and press Y. Then press Y and enter once more to reboot. It will take between one hour and 15 minutes to convert to NTFS. Now you can set passwords for files and use encryption. This also works for windows XP Home. Unfortunately this makes the default cluster size 512 bytes instead of the 4kb that a clean format of NTFS provides.
Make NTFS run better ;)
Now that you've converted over to NTFS or you had it already there's a few
things that you'll want to do to make it run faster. NTFS was designed more for
the server market and there's some features that we don't really need and can
either tune a little bit or disable all together.
1. Last access update is another feature that I'd turn off and will help
you get a little more performance out of your hard drive. What is this? NTFS
updates the date stamp on directories whenever it opens the directory. To turn
this rather useless feature off browse to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
and change the NtfsDisableLastAccessUpdate registry entry to 1
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]
"NtfsDisableLastAccessUpdate"=dword:00000001
2. (some conflicts happen in programs like Norton AV 2003 if LiveUpdate doesn't work then reenable this)Short names is something that is needed for DOS compatibility. Most of us will want to turn this off. The only time you'll want to leave this on is if you are supporting DOS or win 3x based clients. I think all of us have some machines like that in our CLOSET but certainly not in use. To turn this off you'll have to go browse to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem in your registry and change the default value of the NtfsDisable8dot3NameCreation registry entry to 1.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]
"NtfsDisable8dot3NameCreation"=dword:00000001
Or to put both of them to use insert this into your *.reg file
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]
"NtfsDisable8dot3NameCreation"=dword:00000001
"NtfsDisableLastAccessUpdate"=dword:00000001
Reboot after making changes.
Disk Performance Monitor
The performance monitor for hard drives is turned on by default. You can disable all disk monitoring by running this command
DISKPERF -N
To turn it on again run this and and
DISKPERF -YD
App/boot Defrag
Force all of your most commonly used applications to the edge of the hard drive for faster access.
start -->Run defrag c: -b
Move your pagefile to secondary drive
If you have a secondary drive in your system it is a good idea to put your pagefile on the non windows drives.
1.) Right Click My Computer and select properties.
2.) Advanced tab --> Performance, settings box
3.) Advanced --> Virtual Memory, Change
4.) set the pagefile on the secondary drive.
You can either have a pagefile on each drive or you can set the main drive to have no paging file. I suggest only using a pagefile on a secondary drive.
PageFile Fragmentation.
Many people have talked about this quite a bit and there's also many people selling applications that claim to do this. It's simply a scam. I do not believe the pagefile really gets fragmented badly since it only caches recently used stuff that couldn't fit into the memory. If you believe your pagefile gets fragmented then the best solution is to delete the pagefile on shutdown and reboot about once a week or as you see fit.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager\Memory Management]
"ClearPageFileAtShutdown"="1"
Reduce Recycle Bin size
By default the Recycle bin can eat up 10% of your hard drive. By allocating less space for this you will be keep more free disk space which can improve performance if properly defragmented.
1.) Right Click on the Recycle bin click
on properties
2.) Global Tab
3.) Click Use one setting for all drives
4.) Move the slider to the left to allocate less space. If you have a
larger drive you could easily go down as low as 3% but for smaller drives I
wouldn't suggest using less than 5%
Moving My Documents location
It is a good idea to move the location of "My Documents" to a secondary drive if you have one.
1.) Right click on My Documents and click
properties
2.) Click the move button and select where you want "My Documents" moved to.
Moving the Print Spool
This can only help you if the printer is on your system and you have multiple hard drives in your system. If you print quite a bit of stuff moving your print spool to whichever drive windows is not installed on is a good idea.
1.) Create a new folder on that drive called
print
2.) Go to Start --> Settings --> Printers and Faxes -->
3.) Click File --> Server Properties --> Advanced tab
4.) You'll see a box called Spool folder in that box enter the location of the
directory you created earlier. Probably D:\print
Memory Performance
Improving memory performance can be done simply by preventing your hard drive from being used for cache. This is only useful with 256Mb or more of RAM.
Everything that you'll need to edit here can be found in HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager/Memory Management
So of course add
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager\Memory Management] to your *.reg file.
Disable Paging Executive
This will prevent pages sections from RAM going to the hard drive. If you have a
large amount of RAM at least 256Mb (I suggest 512) you might want to keep the
data in your RAM to improve your performance considerably due to reduced amount
of hard drive swappage. The entry that you will want to modify is called
DisablePagingExecutive. Changing this from 0 to 1 will keep the data in your
RAM.
(can cause 'Delayed Write Failed' errors on some machines and renders it unbootable except in safe mode which you can UNDO this tweak in safemode)
"DisablePagingExecutive"=dword:00000001
DisablePagingExecutive registry key is set to 1 which means Drivers and the
kernel must remain in physical memory. The default is 0 which allows this data
to be cached to disk sometimes. Forcing all of this information to stay in your
RAM is a good idea, but can be bad for the people with 128Mb of RAM.
System Cache Boost
The XP kernel can be loaded into your RAM with a simple registry edit. This can
greatly improve performance since the NT Kernel will always be in your RAM. With
this edit you will allocate roughly 4Mb of your RAM for the kernel. Sometimes
more RAM is used but most of the time it is only 4Mb. The entry that you will
need to find is called LargeSystemCache and you'll need to change this
from 0 to 1 in order to enable this. (can cause 'Delayed Write Failed' errors on some machines and renders it unbootable except in safe mode which you can UNDO this tweak in safemode)
"LargeSystemCache"=dword:00000001
To put both of these RAM tweaks into use you'll add something like this to your reg file
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager\Memory Management]
"DisablePagingExecutive"=dword:00000001
"LargeSystemCache"=dword:00000001
Disable Virtual Memory
This may cause your system to quit booting
DirectX based games that use large textures will often times NOT be able to run even when you have 512Mb of RAM.
Adobe products also have problems with this it seems at ANY RAM size. It's worth trying but if your adobe programs quit working afterwards this will most likely be the reason.
If you experience any problems or slow downs then create a STATIC pagefile which means it is always the same filesize. To do this set both the minimum and maximum size to the same number.
RAM Drive
There's all kinds of goodies you can do when you have tons of RAM. One of them is creating a drive that loads things into your RAM. For all the information you'll want to visit Microsoft's support pages that details this better than I can in the small space. MS support pages info
The only limitation is that the drive can only be 32MB in size. :(
IO Page Lock Limit
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory
Management]
"IoPageLockLimit"
No copy/paste here cause you need to use your head!
Specifies the maximum number of bytes that can be locked for I/O operations. If
you have < 64Mb it should be RAM size - 7Mb. For 64Mb-500Mb it should be RAM
size - 16Mb. For 512Mb and greater it should be RAM size minus 64Mb. This is a
tweak that I did not include in my tweaking guide, but I will in the next
revision due to so many people not using this properly.
Launch Folder Windows in separate Process
I only suggest using this tweak if you have 512Mb of RAM or more on your system. It'll open each instance of explorer in its own process. This takes up more RAM but when you're jumping back and forth between quite a few folders to clean your drive up it can make things a bit speedier.
Open Windows Explorer (Windows key + E) Tools --> Folder Options --> View
Then check the box next to "Launch folder windows in a separate process" then
reboot.
Freeing up memory
Turn off system sounds
This is a rather minor tweak but on normal systems it will make a clicking sound whenever you're clicking around on different things. This uses up resources that you don't need to be using.
Start --> Settings --> Control Panel -->
Sounds and Audio Devices --> Sounds tab
Look where it says Sounds scheme: select no sounds from the drop down list and
select apply.
Don't use a wallpaper!
A lot of us have some very high resolution babes sitting on our desktops. Doing this takes up quite a bit of RAM. I will be leaving my girly friend on my desktop since I have 1Gb of RAM. The easiest way to get to this is Right click the desktop --> Properties --> Desktop tab.
Remove MSN
X:Windowsinfsysoc.inf
msmsgs=msgrocm.dll,OcEntry,msmsgs.inf,hide,7
To this:
msmsgs=msgrocm.dll,OcEntry,msmsgs.inf,,7
Take a look at anything else with the text hide and you'll find some extra goodies that you'll be able to remove.
Remove the Autoplay
MSconfig
is a great place to free up a considerable amount of RAM. You can remove
alot of things from your startup including services. You'll want to first
uncheck all un needed programs on your startup. |
The best place to make changes to services can be found with just a few clicks.
Control Panel --> Administrative Tools --> services
From there you will want to look over all the different services that are running. When you first install Windows XP you will have 89 available services and 36 of these are set to automatically start as the DEFAULT! There's really only 5 that are needed to run. You should never set these to disabled. It can cause quite a few problems if a program requires them to run. Setting these to manual will allow them to run if needed but won't automatically start with windows. This will free up quite a bit of resources by only running the services that are truly needed.
The only place that I've found that really explains these services well can be found HERE I'm sure you'll be as surprised as I was to see how much garbage is on/in Win XP by default. When properly tweaked you can really get alot more performance out of this OS.
Unloading DLLS
Anytime a process is ended this will force windows to try and unload any DLL files associated with the now closed application. This can and probably will have a negative affect on performance if yoopenopen applications not too long after closing them. If you have buttloads of RAM, don't do this one! It Free's up used RAM that most of us really do want.
To unload DLLs
when you are done with them navigate to
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\AlwaysUnloadDLL
This time you'll have to create an entry called AlwaysUnloadDLL and set
the value to 1.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\AlwaysUnloadDLL]
"(Default)"="1"
Disable Recent Documents History
Quit logging recently opened documents.
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoRecentDocsHistory"="1"
Disable User Tracking
Make windows quit logging which applications you run and which files and
documents are being accessed.
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoInstrumentation"="1"
Shutting down/ Startup
Keeping your system clean on startup will improve your system startup time and will also free up additional resources by not having so much junk running in the background. We have a database of startup entries searchable here. Through this you can find out which entries should stay and which are best to remove.
1.) To go along side this I have written a guide to tracking down programs that are on your startup, you can read it
HERE.
2.) You'll also want to turn your boot logo off, the guide is
HERE.
3.) You'll also want to remove any fonts that you don't need, the guide is
HERE.
There's quite a few things related to shutting down your system faster located in HKEY_CURRENT_USER\Control Panel\Desktop\
AutoEndTasks (set to 1) will automatically kill hung up
programs for you. The next one is HungAppTimeout (make sure it's
5000). Next up is WaitToKillAppTimeout. Which should be set to 4000
(default is 20000).
Since we have the programs being killed after a certain amount of time you
will also want to do the same for services. Change the
WaitToKillServiceTimeout to 4000 as well.
MenuShowDelay is the delay between when you click and when the menus are actually shown.
[HKEY_CURRENT_USER\Control
Panel\Desktop\]
"ForegroundLockTimeout"=dword:00000000
"AutoEndTasks"="1"
"HungAppTimeout"="5000"
"MenuShowDelay"="1"
"WaitToKillAppTimeout"="4000"
"WaitToKillServiceTimeout"="4000"
The XP Prefetcher
XP Prefetcher Information and Tweaks
Disable Auto reboot
1. Right Click My computer and hit properties
2. Go to Advanced
3. Under the Startup and Recovery section, click Settings...
4. Under System Failure un-check "Automatically restart"
BootVis
1.) Download
Bootvis and run it.
2.) Click Trace --> Next Boot + Driver Delays
3.) This screen asks about the number of repetitions. Once is the default
and its good enough. You can simply click on OK. Your system will now restart.
4.) Select Trace --> Optimize system then wait for it to be done. It
tweaks quite a few oddball things to improve your system load times.
OS List Delay
1.) Start --> Settings --> Control Panel --> System --> Advanced
2.) Startup and Recovery settings
3.) If you're dual booting lower the time to something like 10 seconds and make
sure you've set your default OS to whichever you use more. If you only have one
operating system then you should uncheck the box that says "time to display list
of operating systems"
Crappy "Features"
Windows Xp has a number of features that are not needed by most of us and use up valuable resources.
Automatic Updates
Right click my
computer, hit properties
Automatic updates
Turn off
Turn off System Restore
For some of you disabling this isn't a good idea. If you are going to do this you should make this the very last tweak that you try. You should also turn this back on before you make any major changes to your OS. This is a way that will help free up some resources but it comes at a cost. Windows XP by default has many many safety nets. It will improve system performance if you're flying without the safety net. BUT if you fall without the nets properly in place then you die.
Turn off Automatic Updates
Turn off user tracking
This setting prevents the system from tracking the programs users run, the
paths they navigate, and the documents they open. The system uses this
information to customize Windows features, such as personalized menus.
If you enable this setting, the system does not track these user actions. The
system disables customized features that require user tracking information,
including personalized menus.
The Default start menu relies on this. If you're using the classic start menu like I am then make sure you turn this off cause it doesn't do any good for you.
Remove Built in CD burning
I suggest using a third party program such as Nero or Adaptecs EZ CD Creator.
Networking
This is where I am putting all of the LAN and modem related tweaks.
Browse Network Computers faster
Slow boot on network
Sometimes when connected to a LAN the boot time can take a few minutes. Load
times shouldn't be anywhere near that! Signs of this include the system
seemingly freezes after logging in, your desktop showing up but for some reason
you just can't click on anything or run things for a minute or two. This can be
traced back to mrxsmb.dll by using bootvis.exe. This can of course be a number
of other things but most of the time it's your file and printer sharing.
1. Right click on Network Places --> Properties
2. Right click on your Ethernet Adapter connection --> properties
3. Un-check "File and Printer Sharing for Microsoft Networks" --> OK
4. reboot
5. If you need file or printer sharing, repeat the above, re-check the box and
re-boot again.
Simply uninstalling and reinstalling your file and printer sharing will fix this up. Another case of funky MS syndrome. AKA keep BigCheeze Employed bug.
NIC's with onboard processor
Some network adapters have a built in processor the fix will take all network processing off of the CPU only if your NIC has an onboard processor. If you paid $10 for it then don't count on it ;)
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
and create and DWORD value if does not already exist DisableTaskOffload. Modify it to 0=use the processor or 1(default)=do not use the processor.
Bandwidth tweaking
You'll want to set your TCP/IP settings for the proper amount of bandwidth for your system. I suggest running this and setting it for what it tells you.
Increase DNS cache size
If you do a TON of surfing like I do then it might help you a little to increase how much cache is allocated to DNS information. DNS looks up what IP number relates to each domain. By increasing the size of this cache it can cut down on the number of DNS queries. Minor I know, but every little bit helps.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters]
Create the following DWORD values:
CacheHashTableBucketSize = 1
CacheHashTableSize = 180
MaxCacheEntryTtlLimit = ff00
MaxSOACacheEntryTtlLimit = 12d
Do Not cache DNS error sites
Since we showed you the tweak above we'd also better show you how to prevent lookup errors from being cached!
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\DnsCache\Parameters]
Create the following DWORD values:
NegativeCacheTime= 0
NetFailureCacheTime= 0
NegativeSOACacheTime= 0
Oddball stuff
IE without startup page
Open IE and click tools --> Internet Options You'll see Home Page at the top of this. Click on the use blank box.
Visual effects in system panel
A noticeable performance boost can be found when you turn off alot of the eye candy in Win XP
Right click my computer, hit properties
advanced --> Performance --> settings
Adjust for best performance
Start menu speedup
To make your start menu show things quite a bit faster you will want to browse HKEY_CURRENT_USER/Control Panel/Desktop./ and edit the MenuShowDelay key. Changing that to a lower number will result in faster performance.
L2 Cache size
Windows XP can't detect the proper amount of L2 cache on some CPU's like the Prescott. you'll want
to go to [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager\Memory Management] and change the SecondLevelDataCache key to
the L2 cache size of your CPU (in Kb). I've received a few questions about this
one and I thought I'd clarify it. when you select to modify this file the
default entry is in hexadecimal simply change the selection to decimal and THEN
enter your number. Such as 256, 512. A value of 100 in Hexadecimal will result
in 256Kb being shown since that is what it's decimal number is.
Some have argued that this is only for the old systems that have their cache externally. I'm looking for more information on this right now.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory
Management]
"SecondLevelDataCache"="100"
Hardware Related
Increase USB Polling Interval
This sets the IdleEnable key to 1 where the default is 0. Basically changes the USB polling interval from 1ms to 5ms which can reduce CPU load. This is primarily a tweak for laptops which can save battery life and fixes a problem with some laptops entering the C3 processor power-saving state.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}
That's everything that I suggest using... If you'd like any additional information please post in the forum.