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.

Vista 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 Vista 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.

Most of the tweaks listed here require that you to edit your Vista 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 unless you know what you are doing.

To start RegEdit in Windows Vista, Click Start, type RegEdit in the Start Search box, and then click RegEdit in the Programs list.

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

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 Vista's Internet Explorer 7, it isn't enabled in Vista as a whole. Compare the difference:


  Just look at the difference for a moment. Can you argue against ClearType being a performance enhancement?

You can enable ClearType by right-clicking the Desktop and selecting the "Personalize" menu item, then select "Window Color and Appearance", click "Effects..." and select "Use the following method to smooth edges of screen fonts", select ClearType from the dropdown list. However, if you go to the Microsoft Typography pages and follow the simple instructions there then you can adjust ClearType to your eyes' very own personal preferences.

Tweak #2: Disable Last Access Timestamp

Whenever Vista 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.

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.

  • 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

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 2GB of RAM (note: less than 2GB) because there is a risk that you will reduce the performance of the applications that are regularly used. By causing the Vista 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 you have read kadaitcha.cx's XP Performance Tweaks,, you will note that the corresponding caveat for XP states "less than 1GB of RAM". Any edition of Windows Vista that supports Aero and is running on a machine that is Aero-capable allocates up to 768MB of shared RAM, even if you have Aero turned off.

If the machine is used mainly to provide network file shares, is used intermittently as a workstation, and has at least 2GB of RAM, i.e. the machine has 2GB of RAM or more, then you may consider this tweak provided you consider the remaining caveats listed below.br />
SSecond, 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 #10.

Laptops or portable computers have limited resources, and they commonly use shared memory for system, application and video display use; in Vista the shared memory overhead is extremely high, much higher than is required by Windows XP. 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 consider not applying this tweak unless you have at least 2GB of RAM.

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

  • SShared 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

  • Vista has allocated shared memory for Aero, and in conjunction with this tweak, caused insufficient resources to be available to the rest of the OS

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 suggested, rather than recommended as it is for XP. This tweak is recommended where Vista 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 the core of the Vista OS) from being rolled out to a pagefile on disk. The effect of this first part of tweak #3 is to cause Vista to cache the Kernel in RAM instead of on disk, which makes Vista more responsive to requests to the core component functions that are performed by ntoskrnl.exe.

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

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 data in RAM after it is read from disk. Having a large system cache means that Vista 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 machine 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.
 

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 Search Service

Some people find this tweak to be a little controversial in that they don't notice the effects of the Windows Search service soaking up processor time in the background, which could be because they're not very observant, or because they are using a fast, multi-processor computer. The point is, if you don't believe this tweak will offer you any benefits, don't apply it.

kadaitcha.cx lampooned the Windows XP Indexing service in this way:

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."

Unfortunately, the Windows Search Service isn't much better. Microsoft's documentation for the Search service states, in part:

"Provides content indexing and property caching for file, email and other content (via extensibility APIs). The service responds to file and email notifications to index modified content."

What that means is that the Search service not only scours your hard disk to index everything it can find, it kicks off whenever you copy files or receive an email. If your system isn't a leading-edge, high-end machine then turning off the Search service may buy you additional performance.

Microsoft warn:

If the service is stopped or disabled, the Explorer will not be able to display virtual folder views of items, and search in the Explorer will fall back to item-by-item slow search.

Virtual folders rely on XML queries, in fact, a virtual folder is effectively nothing more than the result set of an XML query. If you don't make extensive use of Vista's Save Search option then there is no pressing reason to leave the Search service running. As for "item-by-item slow search", a much better searching alternative is 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 turn off the Windows Search service, use services.msc.

To start services.msc in Windows Vista, Click Start, type services in the Start Search box, and then click Services in the Programs list.
  • Scroll to the "Windows Search 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 Aero, 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 Vista's wow-factor graphics, then turning off Aero, 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 Vista's visual effects by right-clicking the Desktop and selecting the "Personalize" menu item, select "Window Color and Appearance". In the listbox under "Color scheme", choose Windows Classic.
 

Tweak #8

Get more RAM. The more the better. If you have sufficient RAM, you may not even need a page file.

Vista 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, Vista 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

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 #10) 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 #10

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:

Click the image to enlarge it

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 32-bit 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 #11

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 faulting is 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
  • Select Advanced system settings:

Select the Advanced tab:

Click Settings under the Performance group and on the Performance Options dialog box, click Change, which is under the Virtual Memory group:

 

Deselect Automatically manage paging file size for all drives (1.)
 
Click on the hard disk that currently contains the pagefile (2.), click No paging file (3.), then 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.

Pagefile Defragmenter
The Vista defragmenter cannot defragment a pagefile because the file is open while the defragmenter is running. If you want to optimise your pagefile, especially if you have only a single hard disk, you can install Microsoft's PageDefrag tool.

Tweak #12

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 #13

Invest in a Vista ReadyBoost-capable USB flash drive (or pen drive).

Windows Vista includes a feature called ReadyBoost, which is a cache that can be stored on high-speed USB flash drives to increase Vista's performance. Not all 'Hi-Speed" USB flash drives are fast enough for Vista though; Vista's minimum specification for ReadyBoost-capable high-speed flash is 2.5 MB per second on 4KB random reads, and 1.75 MB per second on 512 KB random writes. That's megabytes per second, not megabits.

Flash drives are relatively cheap, but before you rush out and buy one, read the kadaitcha.cx article about buying the right type of flash drive to avoid being sold a lemon.

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 Enable DMA is unchecked, check it and click ok.

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.