If you can't find what you need using the site search on the toolbar above, or if you need more detailed help or just need to be pointed in the right direction, post your question to the newly opened kadaitcha.cx forums. Membership is free.

XP Performance Tweaks

Introduction

Do you want to make the very best use of your computer's RAM? There are thousands of websites offering performance tweaks and you could spend the next week or more researching the ones you might like to perform, or you can save yourself a lot of bother and read this article. There are hundreds of XP tweaks, but you only need the handful listed here to obtain a significant performance boost. The rest of the tweaks you might find will only give you minor and often indiscernible performance benefits.

Some of the tweaks listed here require that you to edit your registry. kadaitcha.cx accepts no responsibility or liability for your choice to make changes to your registry, or for any other changes you make. There may be serious consequences from making changes and the responsibility for that is entirely your own. In short, you should not perform any registry edits or any other changes to your system unless you know what you are doing.

To start RegEdit, Click Start, type RegEdit in the Run box, and then click OK.

WARNING
There are a number of websites offering alleged performance tweaks that include advice to empty the XP prefetch folder. If you follow this ridiculous advice, your system performance will decrease. Windows XP automatically manages the prefetch folder and there is no need to delete anything from it.

Additionally, the same websites offer a tip to add ConservativeSwapfileUsage=1 to the SYSTEM.INI [386enh] section in order to force the OS to be a bit more aggressive about not going to the pagefile. This is complete rubbish. In Windows XP, SYSTEM.INI is used only by 16-bit applications, and it is included in XP only for backward compatibility, which means the alleged tweak does nothing at all for XP.

Also see Tweak #10 for more information on alleged performance tweaks being peddled by various XP "technical" websites.

Tweak #1: Enable ClearType

Performance isn't just about the speed of your system, it includes being able to clearly see the text on your screen. ClearType provides support for vastly improved font display on colour LCD monitors, high-quality TFT and standard CRT screens, and whilst ClearType is enabled by default in Internet Explorer 7, it isn't enabled in XP. Compare the difference:


  To enable ClearType and make any adjustments to suit your eyes, go to the Microsoft Typography pages and follow the simple instructions. You can adjust ClearType in the Control Panel after installing the software at the link.

Tweak #2: Disable Last Access Timestamp

Whenever XP reads a file, it stamps the file with the date and time that you accessed it. This feature has its place but is not required for normal use unless you rely on the date of last access for backup purposes, which is a rare requirement for most backups. Putting a timestamp on a file that has just been read means that a write access has to be made to disk, so every time a read is executed, a corresponding write is also executed.

To disable the last access timestamp behaviour, start a command prompt, enter the following command then reboot;

FSUTIL behavior set disablelastaccess 1

Those of us who read and write Her Majesty's English need to take note of the American spelling of the BEHAVIOR parameter. To turn timestamps back on, repeat the command but replace 1 with 0;

FSUTIL behavior set disablelastaccess 0

Tweak #3: Disable 8.3 Filenames

IF:
  • You're into messing with your OS' file system, and
  • You're 100% certain you don't use any 16-bit applications that rely on DOS 8.3 filenames, then
You can disable DOS 8.3 filename creation. This change will greatly improve Windows Explorer's directory enumeration. If you have a large number of directories then this tweak may afford a significant improvement when browsing folders.

At the command prompt, enter the following then reboot:

fsutil behavior set disable8dot3 1

Tweak #4: Kernel Paging and Cache Tuning

This tweak is not straightforward in terms of the conditions that ought to exist prior to applying the tweak to your system. There are two parts that can be applied independently, a number of caveats that should be considered, and the details are technically complex. Provided you don't have a laptop, and provided your workstation has 1GB of RAM or more, the easiest way to decide if you should apply this tweak or not is to actually apply it, and undo it later if you wish. You can skip the technical details by going here.

Summary Technical Details:

  • Do not apply this tweak on laptops or portable computers

  • Do consider applying this tweak if the main purpose of the workstation is to serve files to other users on a network

  • Do consider trying this tweak if you do not run a version of SQL Server or IIS (Internet Information Services)

    • There are several Microsoft technical articles indicating that SQL Server will set this value to 0 when it is installed

  • Do not consider applying this tweak If the technical detail is too much for you

  • Do consider this tweak if your system is a desktop unit and has independent, non-shared video memory on a plug-in PCI or AGP video card

    • On-board video and shared video RAM must be disabled in BIOS

  • Do not try to adapt this tweak to Windows Vista, which has different memory requirements. If you are reading this page and attempting to apply the information to Vista then you should be reading the kadaitcha.cx Vista Performance Tweaks, not this page.

Caveats in Detail

First, if the machine is a desktop or tower unit that is regularly used as a workstation, and if the machine also performs file sharing services then do not apply this tweak if you have less than 1GB of RAM (note: less than 1GB) because there is a risk that you will reduce the performance of the applications that are regularly used. By causing the XP kernel to not be paged to disk or by enlarging the system cache, you may force larger (larger in terms of memory requirements) applications to be paged, which is an undesirable situation for productivity and performance. In low memory systems you should apply Tweak #8 before applying this tweak. kadaitcha.cx considers any machine that has less than 2GB of RAM to be low on memory.

If the machine is used mainly to provide network file shares, is used intermittently as a workstation, and has at least 512MB of RAM, i.e. the machine has 512MB of RAM or more, then you may consider this tweak provided you consider the remaining caveats listed below.

Second, irrespective of the amount of RAM you have in your system, you should monitor your pagefile activity using the Performance Monitor for a day or so of normal use, and you should consider not applying either of the two parts of this tweak if you perceive that pagefile usage is high. You will have higher pagefile activity if your overall memory requirements are high and your total available memory is lower than the overall requirement, which means that Tweak #8 should be applied. Note that you will not be able to monitor your system's performance if you apply Tweak #11.

Laptops or portable computers have limited resources, and they commonly use shared memory for system, application and video display use. In addition, many modern workstation motherboards have a built-in video adapter that is also likely to use shared memory, so if your system does not have an additional, plug-in PCI or AGP video card and if the built-in video is not disabled in BIOS, you should not apply this tweak unless you have memory to burn, at least 2GB.

Third, if you apply this tweak without proper consideration then you may experience random performance decreases. If random performance degradation occurs after performing this tweak then you probably have one of these conditions:

  • A disk-intensive application is managing its own caching

  • A greedy driver is allocating additional RAM

  • Shared video memory allocation is causing insufficient resources to be available to device drivers for plug-in PCI or AGP video cards

    • This situation can, but does not always, manifest itself in stop errors, system instability and the failure of device drivers to load

In all the above cases, you will need to undo this tweak and consider Tweak #8 before trying this tweak again.

To recap, if you have 2GB of RAM or more on a desktop machine or tower unit, and if you have an independent video card, and if your machine has on-board video that is disabled in BIOS or has no on-board video support at all, then this tweak is recommended, rather than suggested as it is for Vista. This tweak is especially recommended where XP is being used mainly to serve files over a small network. kadaitcha.cx always applies this tweak to equipment that meets these summary requirements and has never experienced any performance degradation, stop errors or system instability as a result of applying it. Additionally this tweak is highly beneficial if you are in the habit of constantly opening applications when you need them and closing them when you don't need them.

The "DisablePagingExecutive" entry in the registry prevents the kernel (ntoskrnl.exe, part of the core of the XP OS) from being rolled out to a pagefile on disk. The effect of this first part of this tweak is to cause XP to cache the Kernel in RAM instead of on disk, which makes XP more responsive to requests to the core component functions that are performed by ntoskrnl.exe.

The "LargeSystemCache" registry entry forces XP to allocate up to all but 4MB of system memory, that is system memory, not available RAM, to the file system cache. The remaining system memory is used for disk caching, though XP will allocate more memory if it is needed. In rough terms, system memory is where XP holds programs and data that are currently in use. This allows applications and files to be cached in RAM rather than stored on disk.

A modern hard disk will transfer sequential data to and from disk at up to 40MB per second, or even faster on some of the more expensive, faster-spinning drives, but the LargeSystemCache tweak means that effective transfer speeds of 1GB per second or more can be obtained, depending on the amount of RAM in your system and its operating speed. This is achieved because the LargeSystemCache modification causes the OS to store applications in RAM after reading them from disk. Having a large system cache means that XP is always using the optimum amount of RAM instead of leaving it untouched for future use that may or may not occur. Without this part of the tweak, 256MB or more of RAM in a typical workstation goes completely unused.

Some I/O intensive applications may take a hit in performance from changing the LargeSystemCache, so this particular component of the tweak should not be applied to a system that is running very disk-intensive applications.

Part 1: DisablePagingExecutive
Start RegEdit and navigate to the following key:

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

Double-click the DisablePagingExecutive entry and change the default value from 0 to 1

 
   
  Part 2: Enable LargeSystemCache

Repeat the previous step for LargeSystemCache, by changing the default value to 1.

Note that the LargeSystemCache entry is in the same registry block asthe entry for DisablePagingExecutive:

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


To see the effects of this tweak, reboot then launch a large, memory hungry application. Any of the Microsoft Office suite of applications will do that job nicely. Let the application load, then exit from it. Fasten your safety harness then launch the application again.

A PC with a striped RAID 0 array of two ATA100 7,200 RPM disks with a SiSoft Sandra Drive Index of 28,000 had the two registry changes above applied to it and the Drive Index tripled to an upper mark of 85,000. A similar, scaled-up performance increase can be expected for faster disks.

The more RAM you have, the better this tweak will perform. If you have more than 1GB (note, more than 1GB) then your system cache can expand up to its 32-bit limit of 1GB. If you have an x64 XP and if you are fortunate enough to be able to afford the RAM, your system cache can be expanded to one terabyte, which is a bit odd if you consider the maximum non-pooled RAM size (virtual addresses that are guaranteed to be resident in physical memory at all times and can be accessed without causing a page fault) is 128GB in an x64 edition of Windows.

Tweak #5: Processor Scheduling

This tweak is impossible to explain without getting into the technical ins and outs of binary values, bit pairs and bit masks. Suffice it to say, it forces short, variable length processor timeslices to be allocated to foreground processes three times more often than those timeslices given to background processes.

Start regedit and navigate to the following key:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl]

Change the value of Win32PrioritySeparation to 26 hexadecimal, which is 38 decimal, save the changes and reboot.

As with the cache tuning tweak (#4), this particular tweak should not be applied to a system that is running either SQL Server or Internet Information Server (IIS) unless you are certain that you want to slow down those background processes.
   

Tweak #6: Turn Off the Windows Indexing Service

The Windows Search Companion has been very much maligned by the technical community, and with good reason. It is, in kadaitcha.cx's opinion, a classic example of software that both uses resources and operates at speeds that are inversely proportional to the value of the function that it performs. It is slow, ineffectual and tantamount to useless for serious searching because it deliberately ignores certain files and directories without allowing the user to decide what should and should not be searched. In short, the Search Companion is dysfunctional bloatware.

From a Microsoft Knowledgebase article titled "Windows XP may run slowly and you may see multiple symptoms in Windows Task Manager":

"This issue can occur if the Indexing service is running on the computer. The Indexing service uses the Cidaemon.exe process to index files. The Cidaemon.exe process builds and updates the Index catalog. Additionally, the Cidaemon.exe process typically uses lots of pagefile space and lots of CPU time."

The phrase, "typically uses lots of pagefile space and lots of CPU time" looks like a Microsoft marketing droid's spin on the plain English meaning of, "This is bloatware."

Whilst the Windows Search Companion will still function without the indexing service, some performance benefits can be obtained by utilising the indexing service. However the indexing service builds a SQL database of keywords it finds in files. This means that to get at the information compiled by the indexing service, the Search Companion sends an SQL query to the database, which then returns the information to the Search Companion. This can be a frustratingly slow process, even on very fast machines.

Besides the feature and performance issues with Search Companion, the indexing service works in the background, scouring almost every file that it finds. On a new system, the indexing service can take days to settle down. This is because the service puts a low priority on its work. Despite this low priority, the indexing service can cause serious performance degradation, especially in lower-end machines because the computer's hard disk runs continuously. If you have Office XP, you may find this of interest.

A much better searching alternative is to turn off the indexing service and use Agent Ransack by David Vest.

From the Agent Ransack website: "Agent Ransack is a free tool for finding files and information on your hard drive fast and efficiently. When searching the contents of files Agent Ransack displays the text found so you can quickly browse the results without having to separately open each file! Agent Ransack provides compelling advantages over similar search tools: Regular expressions that allow complex rule based searches. Immediate contents results view. Various wizards to walk the user through the searching process. Agent Ransack is provided free of charge for the benefit of the Windows community. If you find it useful please register it, free of charge."

To disable the indexing service:
  • Click Start, Run, type services.msc then press enter or click OK
  • Scroll to the "Indexing Service" in the right-hand pane and double-click it
  • Change the Startup type to Manual or Disable and Apply
  • Click the Stop button and wait for the service to stop then click OK
 

Tweak #7: Turn Off...

Turn off themes and visual effects.

As ridiculous as that sounds, if you want a very responsive user interface because you are more interested in getting work done than looking at XP's Fisher-Price graphics, then turning off themes and visual effects has got to be the best idea since sliced cheese spread. You might not like what you see, but it will be faster.

You can disable all of XPs visual effects by right-clicking the Desktop and selecting the "Properties" menu item, select the "Appearance" tab. In the dropdown box under "Windows and buttons", choose Windows Classic style.
   

Tweak #8

Get more RAM. The more the better. If you have sufficient RAM, you may not ever hit the pagefile again, depending on the applications you use.

XP will run ok with no pagefile and you have enough RAM, though some old, badly-written applications, and some more modern ones that need to allocate huge amounts of space, such as Photoshop by Adobe, might throw an out of memory error if there is no pagefile. The point is, the more RAM you have, the less reliance you have on a pagefile, which is kept on much slower hard disks. RAM is always faster than a hard disk and more RAM will reduce your system's reliance on the pagefile.

kadaitcha.cx does not recommend turning off the pagefile, even if you have 4GB of RAM. If the pagefile isn't needed, XP won't use it, but even with 4GB of RAM, memory-hungry applications may still need to utilise the pagefile. Also, some applications need to use the pagefile no matter how much RAM you have to spare.

Tweak #9

Microsoft has a habit of putting convenience features into their operating systems that are convenient only to a small, select group of users. One such feature in XP is the automatic search for network printers and folders. Automatic search periodically polls your network to check for new shared resources and adds relevant icons into My Network Places if anything is found.

Microsoft's documentation on this feature is contradictory. In one sentence Microsoft state that the feature "does not add a great deal of overhead to your Windows XP computer's work load", implying that it does add some overhead, though they are not willing to state the level of that overhead. In the same documentation Microsoft proceed to state that if you have a small network where few resources are added or infrequent changes are made, or if you use a laptop that is regularly disconnected from the network then "...having Windows XP use any resources at all to perform this chore might be counter-productive", thus implying greater overhead than Microsoft are willing to admit to.

You can manually search your network for new printers in the Add New Printer Wizard, and you can manually locate new computers and shares on your network using standard URI notation in Windows Explorer, for example:

\\machine_name\share_name

If you wish to prevent XP from regularly searching your network and performing "counter-productive chores" then follow these simple instructions:
  • Open the Control Panel and select Folder Options. If you use the Control Panel Category View you'll find Folder Options under Appearance and Themes.
  • Click the View tab.
  • In the Advanced Settings list, click to clear the Automatically Search for Network Folders and Printers check box.
  • Click OK.

Tweak #10

Don't disable unwanted Windows services.

Does that tweak surprise you? How can doing nothing be considered a performance tweak?

There are thousands of requests on Internet Web forums and Usenet newsgroups for advice on services that can be disabled, and there are an equal number of Windows-related Websites offering lists of services that can be disabled. So, given that large body of knowledge and apparent expertise in service disabling, you may be surprised to learn that kadaitcha.cx asserts it is potentially foolish, certainly it's counter-productive, and it is technically naive.

Why is it so? There are four main reasons.

First, services that are loaded often do not run when they are unused. At worst, an unused service will consume RAM; RAM is cheap, and adding RAM to your machine is one of the best tweaks you can perform anyway. When a service starts up, it tells the Operating System that it needs to be invoked when such and such an event takes place, and the OS dutifully does not invoke the service until such and such an event actually does take place. Thus the service lies dormant until it is invoked by the operating system. Services like the Indexing Service and Perflib (Performance Monitor, see Tweak #11) execute at regular intervals and can be disabled if they are causing performance issues, but there are very few other services in this class. If you need proof of this, just start Task Manager and look at the list of services sitting there, doing nothing other than consuming marginal amounts of RAM.

Second, disabling services that you feel you do not need now can lead to major problems when you do need a certain disabled service to run. This is especially going to be a problem if you forget that you have disabled particular services and are unaware that you need the service running to use an application. What happens if you disable the Windows Fax and Scan service, then, say some months later, decide to install Microsoft Office, for example, and try to send a fax or scan a document from within Office? It isn't going to work, and unless you immediately remember that you've disabled the Windows Fax and Scan service, you're going to be spending far more time troubleshooting the problem than you will save over the entire life of several computers by disabling it.

Still with the second reason for not disabling services, some websites, no doubt managed by the technically incompetent in many cases, suggest that the DNS Client Service can be disabled, especially if you have a modem/router that performs DNS services; the idea being, "if the modem/router performs the DNS tasks, why let XP do it?". The fact of the matter is, the Windows DNS Client Service is a cache of IP and Web addresses, so if you disable this service then you disable the cache. Since caches are intended to boost performance, it should be obvious that disabling a cache will reduce performance. If the DNS cache is enabled then your OS already knows the IP address of the site it wants to communicate with, and it can do so directly, without the router needing to look up the host name on a remote name server in order to retrieve the IP address. To put this in simple terms, by disabling the DNS cache in XP, you force your modem/router to lookup the IP address on a name server somewhere in the big-Internet-cloud-in-the-sky before every single connection is made to a site using its name, and this can take up to several seconds, even if you have a high-speed connection.

Third, any performance gains from disabling services that don't execute unless they're needed anyway will be so insignificant that you will not be able to perceive a performance increase at all. So, if a performance gain cannot be perceived, why bother? To be worthwhile, a performance tweak must have a perceptible performance gain, and the best you can expect from disabling unused services is a few hundred nanoseconds in operating system boot time, which in the scheme of things for today's PCs, is much less than a small fraction of the time it takes to blink.

Fourth, there are a number of idle-time tasks that must be performed on a regular basis by the OS. The Task Scheduler runs at regular intervals to check if the system is idle, i.e. not being used, and if the machine is idle, the idle-time tasks are executed. It is pointless to disable tasks that only run when the system is not being used.

So don't disable apparently unused, running services or tasks.

Tweak #11

All versions of Windows NT (NT 4.0, win2k, XP and Vista) contain numerous counters that gather performance information from various parts of the system. The data is continually written to the registry and retrieved by performance monitoring tools, such as System Monitor. The issue with this process is that if you are not using any monitoring tools then the data is being written to the registry for no good reason, however this is balanced by the operating system maintaining a registry cache in memory.

If you do not use a performance monitoring tool or any third-party desktop gadgets that report performance data then you can disable all performance data gathering. To see the amount of activity generated by performance counters, type perfmon.msc into the Run box and click OK:

There is constant performance data gathering going on, and what you see initially on the Performance Monitor screen is not the half it. To see just how much data gathering is happening, right click any counter listed under Counter, at the bottom of the monitor, and add all the available counters:

WARNING
If you perform this tweak then the data from all performance objects and counters will not appear in any performance tool. You will not be able to use System Monitor or any other tool that uses Performance Library (perflib) data. Performance will merely be reported as 0 or 100, depending on the counter.

To disable all performance counters, run regedit and navigate to this registry key:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib

Add a new DWORD Value named DisablePerformanceCounters:

Set the value of DisablePerformanceCounters to 1 and either reboot or restart the registry service:

If you only want to disable certain performance counters then you can use a Windows 2000 Resource Kit utility named Extensible Performance Counter List (exctrlst.exe). Download the win2k Resource Kit here.

Tweak #12

If you have two or more hard disks, move your pagefile.

If you have only a single hard disk, see the end of this tweak before going to the next one.

There is no point in moving your pagefile if you have a single disk, even if the disk has multiple partitions, so this tweak requires at least two hard disks. It relies on the assumption that your second or subsequent hard disk is used much less than your system disk (the disk that your operating system and applications are installed on) so there is less disk activity on it, which means the pagefile can be accessed much more quickly on that drive. In addition, Input/Output (I/O) to and from the second disk is performed in parallel to any I/O on the first disk, which means Windows is not trying to batter the heads across the hard disk as it tries to load files at the same time it is accessing the pagefile.

If you have a single disk with partitions then there is no benefit to be gained from this tweak because the pagefile will still be on the same disk, and the disk heads will still have to move across the same hard disk to get to the pagefile. By moving the pagefile to a different disk you can obtain significant performance gains if your machine constantly page faults.

Note: A page fault is not an error condition. Page faults occur when the OS needs something that is stored in the pagefile, in other words, a page fault occurs when the computer reads the pagefile. Constant page faults are indicated by lots of disk activity when, for example, switching applications or starting new ones. If you perceive a lot of disk activity in these situations then you really need to apply Tweak #8.

This pagefile tweak will perform best if the second or subsequent drive is empty to start with. Failing that, a disk defragment should be performed before applying this tweak to help ensure a contiguous (unbroken) span of space is available for the pagefile.
  • Open the Control Panel and select the System applet
    • Alternatively, right-click "My Computer" on the desktop and select Properties
  • On the Advanced tab, select Settings under the Performance group:

On the Performance Options dialog box, click Change, which is under the Virtual Memory group:

Click on the hard disk that currently contains the pagefile (1.) then click No paging file (2.), then click Set:

Click on the hard disk that you want to contain the pagefile (1.), then click Custom size (2.) and enter the same value as shown in the Recommended field (3.). Finally, click Set then OK:

You do not have to use a fixed-size pagefile if you do not want to, however if you elect to allow the system to choose the pagefile, the pagefile will need to grow at a later date, and your system will slow down during the pagefile growth stage. It is suggested that you use a fixed size pagefile of the recommended size.

You must reboot to make this change take effect.

Tweak #13

In performance, perception is everything.

The Start menu has a built-in delay of just under half a second. Set the delay to 0 for an instantaneous response.

Start regedit and navigate to this key:

HKEY_CURRENT_USER\Control Panel\Desktop\

Set the value of MenuShowDelay to 0 and exit regedit.

Tweak #14

If you perceive that you have experienced an immediate and dramatic decline in hard disk or optical disc device performance then you may be dealing with a serious corruption problem caused by a hardware fault. If hard disk or optical disc performance has always seemed slow then it could be corruption, or it could be that you have an early version of XP that does not enable Ultra DMA mode on hard disks and high-speed optical devices. You can apply this check and the associated modification for either reason.

Both XP and Vista have options for "PIO Only" and "DMA if available" on IDE channels, which can be accessed through Device Manager in the System control panel applet in XP.

If slow disk performance is caused by corruption due to a hardware fault then this test and modification will always revert your hard disk or high-speed optical device to PIO mode, no matter how many times you set it to "DMA if available". PIO is woefully slow and the OS will always force your disks or optical devices into the much slower PIO mode if there are six or more cyclic redundancy check (CRC) errors on the device.

If you find that your IDE channels are set in PIO mode and you change them to "DMA if available", then, if the setting change causes the device to stay in DMA mode, you probably have an early edition of XP that did not automatically set DMA mode; this generally happens on older equipment that has an Intel chipset.

Perform this test and, if necessary, apply the changes to both the Primary IDE Channel and the secondary channel.

Start the System control panel, then start Device Manager (by selecting the Hardware tab in XP).

Right-click on the selected IDE channel:

Choose Properties then choose the Advanced Settings tab:

If Transfer Mode is set to "PIO Only", set it to "DMA if available".

Click OK and repeat for the secondary channel, then reboot.

If the device is not faulty, DMA mode will stay selected (shown under Current Transfer Mode) during normal use and you will experience an incredible performance boost due to the disks running at their maximum throughput. If the device is generating CRC errors then the OS will force the transfer mode back to PIO mode, which means you have a faulty hard disk, or if the device is optical, you may have either a faulty device or a faulty optical disc. See the Data Corruption & Hard Disk Troubleshooting guide if your devices continually fall back to PIO mode.

If hard disk performance remains poor even though DMA mode remains active, defragment your hard disk.

Keeping your Machine Well-Oiled and Greased

Fragmentation

When files are stored on disk they are stored in blocks. A set of blocks can be contiguous or fragmented. Contiguous means adjacent. A contiguous file is composed of a sequence of blocks that is stored in an unbroken chain. A fragmented file has gaps in the block sequence, and the gaps are usually occupied by blocks that belong to other files. If a file is fragmented, or non-contiguous, the hard disk has to skip expanses of blocks as it tries to read a file from start to end, which means that fragmented files cause slower performance.

A fragmented hard disk is a disk that has a lot of fragmented files. A defragmented hard disk means faster read/write access, which, in turn, means better overall disk performance.

Regularly defragment your hard disk, every week if necessary, and certainly at least once a month. Also defrag your disk after deleting a large number of files, cleaning out your browser cache, uninstalling applications, or after using the Windows Disk Cleanup Utility.

The Windows XP Disk Defragmenter is a crippled version of a commercial product called "DiskKeeper" and has a number of limitations:
  • The User Interface is not intuitive.
  • The defragmentation process is rudimentary at best.
  • Large gaps are left between individual files, i.e. the disk is not compacted.
  • It can only defragment one volume at a time.
  • It cannot be run on a schedule
While the built-in XP defragmenter is ok for average users, power users who need more from a defragmenter might consider looking at UltraDefrag, which is an Open Source defragmenter for Windows that supports both x32 and x64 versions of XP and Vista. UltraDefrag offers:
  • Very fast defragmentation, the work is done via a kernel mode driver that has an optimal defragging algorithm.
  • Very small engine written in pure C.
    • The full download is under 200k in size.
  • Nice graphical interface, which is both compact and functional.
  • Safe, because file moving is accomplished with Microsoft's own Defrag API.
  • Simple to use.
  • Can generate html reports of fragmentation status.
  • Can include/exclude files based on simple filters.
  • Free: Distributed with full source code under the GNU General Public License.
  • Has a Compact option to remove gaps between files
If you decide to use defragmentation as a performance-enhancing tool then also download and install Microsoft's PageDefrag tool. Most defragmenters cannot defragment pagefiles and registry hives because those files are open while the defragmenter is running. If you want to optimise your pagefile and other system files, especially if you have only a single hard disk, then this tool is highly recommended.
Unused Files

One of the most common causes of slow disk performance is the presence of lots of small files, which are often unused. Major culprits include the IE browser cache and Windows temporary file directories. Use the XP Disk Cleanup tool (Accessories menu, System Tools) often:

The Disk Cleanup utility can take a while to run on laptops when you execute it for the first time, so be prepared to sit around for a while, or maybe a read a good book. However subsequent cleanups will run much quicker if you perform this task regularly.

The Disk Cleanup utility will empty your Internet Exploder cache, but if you use the Firefox browser, you'll have to empty its cache manually. On the Tools menu, select Options then select the Privacy tab. In the Private Data group, click Clear Now... then click Clear Private Data Now. Make sure that you don't clear passwords unless you really want to do that:

Removing unused or unwanted files before executing a defragmentation can free up space that will be better occupied after a defrag, this is because files will load faster if they are located closer to the start of the drive.
Protect your System Against Malware

Apart from possibly compromising your private data, malware can have a significant performance impact on your computer. Visit the kadaitcha.cx Malware and Virus page and keep your system free of obnoxious packages.