Monday, March 26, 2007

Windows XP Performance Tips

This is a performance tip that I strongly recommend you implement. The Windows Disk Indexer constantly indexes all files on your machine to allow for faster searching using the Windows Search function for example. Since most people don't search their machine very often, having Disk Indexing enabled provides a performance hit for no good reason, and also increases fragmentation. Follow these steps to turn off the Windows Disk Indexer to improve hard drive performance and responsiveness:
1. Go to Windows Explorer, right-click on your hard drive name (e.g. C:) and select Properties.
2. Untick the 'Allow Indexing Service to index this disk for fast file searching'.
3. Select 'Apply changes to [Drive letter]\, subfolders and files' in the subsequent prompt.
4. Your system will now go through and remove all indexing on existing files, and not index any new or moved files in the future - this will speed up drive read/writes and general responsiveness. Ignore any 'errors' which are shown, this occurs simply because some files are in use or protected and can't have their properties changed to remove indexing - this is normal.

Make sure you also disable the 'Indexing Service' service as it is no longer necessary when disk indexing is removed from your hard drive.

I strongly suggest you get into the habit of defragmenting often, specifically after you delete or add large files or install software.

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

I personally leave the Prefetcher registry setting above at its default of 3, and set the Task Scheduler service to Disabled. This means the prefetcher won't create application prefetch files under the Window\Prefetch directory. I also clear all out existing prefetch (.PF) files in that directory. I have found that this provides for the fastest Windows bootup time.


For fastest performance, I recommend deselecting everything except 'Use visual styles on windows and buttons' and 'Use drop shadows for icon labels on the desktop'. That will reduce usage of system resources for graphical effects, while still retaining the majority of Windows XP's trademark appearance.


This is where you can set the size of your pagefile. To determine the optimal pagefile size you should ideally see how much memory your most memory intensive programs use and then set the pagefile to comfortably accommodate this.

Before setting a new pagefile size, first clear your existing pagefile. To do this select the 'No Paging File' option and click the Set button, then reboot your system. This step does two things: first it deletes the pagefile, fixing any potential pagefile corruption which can occur after a bad shutdown (remember this tip for future troubleshooting purposes); and secondly it ensures that any new pagefile you create will start off as a single unfragmented contiguous block on your hard drive for optimal performance, which will remain unfragmented in the future. Note that if you have any problems booting up into Windows due to a lack of a pagefile during this step, enter Windows in Safe Mode (See Backup & Recovery section) and continue the setup procedures for Virtual Memory from there.

Here is a simple general recommendation which is both safe to use on all systems, regardless of how much RAM you have, and provides good performance:
Set the Initial and Maximum pagefile sizes to 2560MB each - i.e. allocate 2.5GB for the pagefile. Whatever you do, don't set a zero pagefile.

For a system with a single operating system, select '"Microsoft Windows XP [Home/Professional]" /fastdetect' in the list presented. If you only have one operating system, or you don't want to select a different operating system each time you boot up, untick the 'Time to display list of Operating Systems' option.

Under the 'System failure' section untick all three options for optimal performance, and the 'Write Debugging Information' option should be set to None. That way if you run into problems you'll see the error displayed (usually a Windows Blue Screen of Death (BSOD) message) and your system won't automatically reboot. At the same time you won't get lots of logfiles and dumpfiles of the event cluttering up your hard drive.

Click the Error Reporting button and select 'Disable Error Reporting' and tick 'But notify me when critical errors occur'. This will prevent your system continually informing Microsoft of errors occurring on your system, but at the same time will still show you important system messages and errors for notification and troubleshooting purposes.

I strongly recommend that you disable the available options in this section for security and performance reasons.

I recommend 'Turn off Automatic Updates' and instead use the manual method of regularly checking the Windows Update site for updates.

Turn off System Restore, as it can take up a great deal of disk space

Disable as many sounds as possible as they take up system memory by being loaded into RAM at startup.

Use Windows Classic Folders
Open each folder in the same window
Double-click to open an item
Under View, I recommend you tick the following options:
  • Display file size information in folder tips
  • Display simple folder view in Explorer's folder list
  • Display the contents of system folders
  • Display the full path in the address bar
  • Display the full path in the title bar
  • Do not cache thumbnails
  • Show hidden files and folders
  • Show Control Panel in My Computer
  • Show encrypted or compressed NTFS files in color
It is recommended that the rest are unticked for best performance and functionality.

  • untick pointer shadow
  • auto default dialog button jump
  • pointer precision

I recommend you set the screen saver to None to prevent burn-in (permanent image imprinting)

Go to Run > msconfig and then choose the Startup tab.
Examine the list and disable any items you do not want started when your computer boots e.g. ypager, iTunesHelper etc.

Go to Run > services.msc and then disable the following:
  • .NET Runtime Optimization Service
  • ASP.NET State Service
  • Clipbook
  • Error Reporting Service
  • Fast User Switching Compatibility
  • IMAPI CD-Burning COM Service
  • Indexing Service
  • Infrared Monitor
  • Machine Debug Manager
  • NetMeeting Remote Desktop Sharing
  • Network DDE
  • Network DDE DSM
  • Network Location Awareness (NLA)
  • Performance Logs and Alerts
  • Portable Media Serial Number Service
  • QoS RSVP
  • Remote Desktop Help Session Manager
  • Remote Registry
  • Routing and Remote Access
  • Secondary Logon
  • Security Center
  • Smart Card
  • SSDP Discovery Service
  • TCP/IP NetBIOS Helper
  • Telnet
  • Terminal Services
  • Uninterruptible Power Supply
  • Volume Shadow Copy
  • WebClient
  • Windows CardSpace
  • Windows User Mode Driver Framework
  • Wireless Zero Configuration
  • WMI Performance Adapter


  1. Anonymous11:21 PM

    Disabling the Task Scheduler Service Cripples your boot and application launch times. The Registry Value is irrelevant if the Task Scheduler Service is disabled. Leave the value at 3 and the Task Scheduler Service on Automatic. People who say it improves performance by disabling it NEVER properly timed it.

  2. Ok, I confess to not having "properly" timed it. Howver, the reason I've disabled mine, is to prevent the Prefetcher from creating lots of unwanted prefetch files. In theory these prefetch files are meant to help in improving loading times for applications, however in my experience they simply increase the overall Windows startup time in exchange for barely noticeable improvements in application load times.

  3. Anonymous4:42 AM

    WRONG! The only file loaded at boot is NTOSBOOT-B00DFAAD.PF. All other prefetch files are not REFERENCED until the associated application load is initiated (you click on the icon). These files are not LOADED they are referenced. They do not load anything to RAM that is not already loading they are simply used to optimize the process. Prefetching ACCELERATES Windows boot and how many files are in the folder is irrelevant. What you stated is NOT how Windows Prefetching works. Unused files do NOTHING but take up a small amount of disk space and are automatically cleaned when the folder reaches 128 entries.

  4. Anonymous4:44 AM

    The slower your system and the larger an application, the more Prefetching helps. Saying it is not noticeable is simply not true. It completely depends on the application.


Note: Only a member of this blog may post a comment.