Fixing Windows XP Annoyances
In many ways, Windows XP is able to take more advantage of your hardware than Windows 9x/Me, but that doesn't mean it's configured for optimal performance right out of the box. Because all the software you run is dependent upon the operating system, tweaking Windows for better performance can result in performance gains across the board.
To start off, there are several easy settings that can have substantial effect on Windows' responsiveness. The next few sections explain these settings.
5.1.1 Tame Mindless Animation and Display Effects
Windows XP adds animation to almost every visual component in the operating system. While these affectations may be cute, they can easily make a 2-gigahertz computer perform as though it were an antiquated 386. Rather than watch your Start Menu crawl to its open position, you can configure your menus and list boxes to snap to position. You'll be surprised at how much faster and more responsive Windows will feel.
The settings that can affect performance are scattered throughout the interface, but the ones that control display effects are the ones that concern us here. Double-click the System icon in Control Panel, choose the Advanced tab, and click Settings in the Performance section. The Visual Effects tab, shown in Figure 5-1, contains sixteen settings, all explained later.
Figure 5-1. The Performance Options window is a good place to start when looking for Windows bottlenecks to eliminate.
Unfortunately, the four selections above the list are rather misleading. For example, the Let Windows choose what's best for my computer option reverts all settings to their defaults, chosen by a marketing committee at Microsoft to best showcase their product's features. The Adjust for best appearance option simply enables all features in the list, while the Adjust for best performance option just disables them.
Keep in mind that disabling some of these options will definitely improve Windows' performance, while others may only be of benefit if you are using older video hardware.[2] Regardless, some of these features are just plain annoying, and turning them off can be beneficial to your sanity. Others are actually kinda cool.
[2] Newer video cards (display adapters), especially better 3D-accelerated AGP cards, have built-in processors that handle drawing routines, such as shadows and translucent effects. If your video card is fast enough, these features won't cause a performance hit. Other settings, such as animated menus, rely on time-based delays, and slow down everyone's system, regardless of hardware.
- Animate windows when minimizing and maximizing
-
If enabled, this option causes windows to appear to shrink into their respective taskbar buttons when minimized, and expand to their full size windows when restored or maximized. Although not as slick as the minimize/maximize animation in Apple's OS X, it can nonetheless give a quick clue as to where your window goes when it's minimized. If you see excessive flickering when you minimize or maximize, try turning this one off.
If you have both the Auto-hide the taskbar setting in Taskbar and Start Menu Properties and the Show window contents while dragging option (described later) enabled, turning off the Animate windows option will also disable the animation for the disappearing taskbar.
- Fade or slide menus / ToolTips into view
-
This is the option that enables or disables animation shown when menus are opened. Turn this option off to have menus "snap" open.[3]
[3] By default, there will still be a short delay before a menu is opened. See Section 5.1.2, later in this chapter, for more information.
If you choose to keep menu animation, you can change the type of animation used by double-clicking on the Display icon in Control Panel, choosing the Appearance tab, and clicking Effects.
- Show shadows under menus / mouse pointer
-
If you have a newer video card (see Section 5.3, later in this chapter), disabling this option should have no discernible effect on performance.
- Show translucent selection rectangle
-
The translucent selection rectangle (referred to as a "rubber band" in Chapter 2) takes advantage of extended support for alpha channels in your display driver. Only those systems with older video cards will see a performance hit from this feature. With this option disabled, rubber bands appear as dotted rectangles.
- Show window contents while dragging
-
Disable this option to show only window outlines when dragging and resizing windows. Unless you have a very old video card, you most likely won't see any difference in performance with this turned off. In fact, your system is likely to seem more responsive with this feature enabled, as windows will appear to respond immediately to dragging rather than responding only after you let go of the mouse button.
- Slide open combo boxes
-
This option controls the animation of drop-down listboxes, similar to the fade or slide menus option described earlier.
- Slide taskbar buttons
-
When a window is closed, its taskbar button disappears. If this option is enabled, the taskbar buttons to its right will slide to the left to close the gap. Since this animation doesn't cause any delays, you're unlikely to achieve any performance gains by disabling this option. However, I find the taskbar animation rather annoying, and personally prefer to have this one turned off.
- Smooth edges of screen fonts
-
Using a process called anti-aliasing, Windows fills in the jagged edges of larger text on the screen with gray pixels, making the edges appear "smooth." Turn this option off to slightly improve the speed at which larger fonts are drawn on the screen.
If you're using a flat-panel display (laptop or otherwise), you may find smoothed fonts more difficult to read. Instead of simply turning the option off, you may wish to try an alternate anti-aliasing method. Double-click the Display icon in Control Panel, choose the Appearance tab, and click Effects to choose between the Standard and Clear Type smoothing methods. Experiment with this setting to see which one looks best on your display.
- Smooth-scroll list boxes
-
Just because standard listboxes don't "open" like menus and drop-down listboxes, doesn't mean they're not animated. By default, when you scroll a listbox, its contents move slowly. Turn this option off to improve the responsiveness of listboxes.
- Use a background image for each folder type
-
Turn this off to disable the background image shown in some system folders, such as Control Panel (category view only) and the My Pictures folder. These folders will not only open more quickly without the background images, but they'll be more readable as well.
- Use common tasks in folders
-
The common task pane can also be disabled by opening Folder Options in Control Panel, and selecting Use Windows classic folders. Common tasks, described in more detail in Chapter 2, are the panes shown on the left of single folder windows, and contain links to related areas and features.
- Use drop shadows for icon labels on the desktop
-
This option does more than simply enable or disable shadows for desktop icon captions. If you turn this option off, not only will the shadows disappear, but the background behind the text will no longer be transparent. Windows XP is the first version of Windows to offer this option. See Figure 5-2 for an illustration of this setting.
- Use visual styles on windows and buttons
-
Turning this option off is essentially the same as choosing Windows Classic style from the Windows and buttons list in Control Panel
Display Appearance tab. See Section 2.3.1 in Chapter 2 for more information.
Figure 5-2. If you turn off shadows for desktop icon labels and you're using a background image, desktop icon labels will be shown over rectangles of the current background color.
Other settings that affect your display performance can be found by going to Control Panel
You'll find additional settings in TweakUI, although many are simply duplicates of the settings described above. See also Appendix A, for details on TweakUI and additional performance-related settings.
5.1.2 Speed Up Menu Responsiveness
In addition to turning off the menu animation, as described in the previous section, there's another setting that affects how responsive menus (including the Start Menu) are. By default, there's a half-second or so delay between the time you move the mouse over a menu item and the time the menu is opened. If you reduce this value, your menus will open much more quickly.
There's another feature that is incidentally affected by this setting. In all releases of Microsoft Windows since Windows 95, all menus "follow" the mouse, which allows you to navigate through menus without having to click repeatedly. The problem with this design is that it can be very difficult to navigate menus unless you're able to hold your mouse or other pointing device very steadily. Even the smallest unintentional move in the wrong direction can cause the menu you're using to disappear. This can be even more annoying to those with more sensitive pointing devices, such as touch pads, pens, and other digitizers. This behavior can be completely disabled by increasing the menu open delay to a sufficiently large value.
-
Open the Registry Editor (described in Chapter 3).
-
Expand the branches to HKEY_CURRENT_USER\Control Panel\Desktop.
-
Double-click the MenuShowDelay value. If it's not there, go to Edit
New String Value, and type MenuShowDelay for the name of the new value. -
The numeric value you enter here is the number of milliseconds (thousanths of a second) Windows will wait before opening a menu. The default is 400 (a little less than half-a-second). Enter 0 (zero) here to eliminate the delay completely, or a very large value (65534 is the maximum) to disable the automatic opening of menus.
-
Click OK and close the Registry Editor when you're finished. You may have to log out and then log back in for this change to take effect.
This setting can also be changed in the Mouse category of TweakUI (see Appendix A) or in Creative Element Power Tools (available at http://www.creativelement.com/powertools/).
5.1.3 Speed Up System Startup
Several factors can impact the amount of time it takes for your computer to load Windows and display the desktop so you can start working. As you install software and add devices, Windows gets more and more bogged down. The most effective way to combat this is to routinely format your hard disk and reinstall the operating system and all applications. In fact, the computer on which I wrote this book was wiped clean before I began the project. Initially, I had upgraded a Windows 2000 system with XP, and it took 2-3 minutes to boot each time. After wiping it clean and reinstalling, the boot time dropped to about 45 seconds.
Unfortunately, reinstalling is a whole lot easier said than done, and is simply not practical for many of us. The following is a checklist of ways to more easily (although less substantially) reduce Windows' boot time.
- Add more memory
-
You should have a minimum of 256 MB of memory (RAM) to run Windows XP, but 384 MB to 512 MB is better. Many systems can accept up to 768MB or even 1 GB (1024 MB), although only users of graphic-intensive applications (such as Photoshop) are likely to benefit from that much memory.
Memory prices are always dropping, typically making it remarkably inexpensive to add more RAM to your system, and doing so will significantly improve performance across the board. See Section 5.3, later in this chapter, for more information.
- Make more free disk space
-
You may not have sufficient free disk space for your swap (paging) file. Windows uses part of your hard disk to store portions of memory; the more disk space you devote to your swap file, the easier it will be for Windows to store data there. See Section 5.2.4 later in this chapter for more information.
The easiest way to create more free disk space is to delete the files on your hard disk you no longer need. It's best to back up your system before deleting anything, or at least to rename (or move) files to see if they're being used before you get rid of them permanently. See Section 5.2.5, later in this chapter, for more information.
Lastly, a new hard disk will give you dramatically more disk space. A faster hard disk can also improve boot time. If you're on the fence about replacing that older drive, consider the performance boost by not only getting a larger, but faster drive. See Section 5.3, later in this chapter, for more information.
- Clean our your Temp folder
-
Sometimes having too many files in your \Windows\Temp folder can not only slow Windows startup, but in extreme cases, can prevent Windows from loading at all. Windows and your applications use this folder to temporarily store data while you're working with documents. When those applications and documents are closed (or when the applications just crash), they often leave the temporary files behind, and they accumulate fast. See Section 4.4.2 for more information on the Temp folder, including a hint on automatically clearing out the Temp folder when Windows starts.
- Thin out your fonts
-
If you have more than 600 fonts installed on your system, it may be negatively impacting on the time it takes to load Windows. If you can survive without 400 different decorative fonts (especially if all you ever use is Times Roman), try temporarily removing them. If you periodically need a lot of fonts, you might want to invest in font management software, such as Adobe Type Manager, which can remove and reinstall fonts in groups at the click of a button.
- Eliminate unneeded networking components
-
Network drivers will always take a little while to load, initialize the hardware, and log on to your network (if applicable). You can usually tell when the network is being initialized during the boot process, because Windows will stop accessing the hard disk for a period of 5-20 seconds, and the lights on your network hardware will start blinking. Try disabling any drivers and networking options (such as drive letter mapping ) that you don't need. See Chapter 7 for details.
- Tame antivirus software
-
Antivirus programs are typically configured to be run whenever you turn on your computer. These programs are always in memory, scanning programs as you open them and files as you download them. In some cases, this is overkill. For most users especially those who take the proper precautions getting a computer virus is about as likely as getting struck by lightning. I certainly wouldn't recommend getting rid of all antivirus programs; just restrict their use to manually scanning your system when you want by disabling the automatic feature. You'll notice a faster startup for Windows and applications alike. See Section 6.2.3.1 for details.
- Reduce autostart programs
-
Probably the most common thing that slows down the loading of Windows is all of the programs that are configured to load at boot time. Not only do they take a while to load, but they commonly eat up processor cycles while they're running. There are several places such programs are specified. Look carefully in each location, and feel free to remove anything you don't want running. See Section 6.2.3 for details.
5.1.4 Speed Up System Shutdown
Theoretically, when you shut down Windows, your computer should be powered down in under fifteen seconds. The problem is that all of the cleanup that is done before Windows considers it "safe" to power the system down can sometimes delay the shutdown procedure, including shutting down your open applications, stopping any running services, and writing any pending cache data to the disk.[4]
[4] During the course of using your computer, Windows sometimes postpones writing data to the disk to improve performance. This is called write caching, and as a consequence, Windows must take a few seconds before you shut down to make sure all data queued to be written is actually, physically written to the disk before power is lost.
The following solutions should help eliminate the sometimes-unnecessary delays that can accompany system shutdown.
5.1.4.1 Part 1: Reduce the hung application timeout
When shutting down, Windows attempts to stop all running tasks. If a task is not responding or refuses to shut down, there's a built-in delay before Windows will force the task to end. This delay is called the timeout, and it can be shortened if you're experiencing problems or unreasonable delays when shutting down your system.
-
Open the Registry Editor (described in Chapter 3).
-
Expand the branches to HKEY_CURRENT_USER\Control Panel\Desktop.
-
Double-click the WaitToKillAppTimeout value. This number controls the time to wait, in milliseconds, before unresponsive applications are forced to close. The default is 20000 (twenty seconds), but it can be decreased to any value; the minimum is 1 millisecond, although it's impractical to use any value smaller than about 2000 (two seconds) here.
-
Also in this key is the HungAppTimeout value, which does pretty much the same thing as WaitToKillAppTimeout; just enter the same number for both values.
-
Expand the branches to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control.
-
Double-click the WaitToKillServiceTimeout value. This works the same as the WaitToKillAppTimeout value described above, except that it applies to services instead of applications. See Chapter 8 for more information on services.
-
Close the Registry Editor when you're done. You'll have to restart Windows for the change to take effect.
These values also affect the timeouts at times other than just shutting down, such as when you click End Process in the Windows Task Manager.
5.1.4.2 Part 2: Have Windows power down your computer automatically
You may have noticed that some computers especially laptops are able to power themselves off when you choose Shut Down from the Start Menu, rather than displaying the "It's now safe to turn off your computer" screen. This is convenient and makes for faster shutdowns.
In order to configure your computer to behave this way, you'll need the following: if you're using a desktop (as opposed to a portable) computer, you must have an ATX-compliant case and motherboard. You can tell an ATX system from the power button; if it's a momentary pushbutton (that doesn't stay in when you press it), you've likely got an ATX case. The difference is that power switches in ATX systems send a "shut down" command to the motherboard, rather than simply cutting power. All new computers are ATX-compliant, as is any machine that is likely to be capabable of running Windows XP.
Secondly, you must have Advanced Power Management (APM) enabled in your system BIOS. Enter your system BIOS setup screen when first starting your computer (usually by pressing the Del key), and make sure any options labeled "Advanced Power Management," "APM," or "APM-aware OS" are enabled. See Appendix B for more information on BIOS settings. If APM is correctly enabled, you should see an icon labeled Power or Power Management in the Control Panel. If you don't, either your system doesn't fully support APM or Windows hasn't recognized it.[5] To force Windows to recognize APM, run the Add New Hardware Wizard in Control Panel and have it automatically detect any new hardware.
[5] Contact your motherboard manufacturer to see if there's a BIOS update available that will fix this problem.
If these two conditions are met, Windows should automatically power down your system the next time you shut down.
5.1.5 Get the Most Out of Your Games, Speed-Wise
Dude, don't tell me only kids play games. I know you play Freecell more often than you check your email. The catch, of course, is that Freecell spends much more time waiting for you to move a card than it spends on any calculations. Speed is primarily a concern with the more processor-intensive games, such as 3D games or anything with full-screen animation.
Improving game performance, as with improving performance in any other application, involves removing software bottlenecks and upgrading hardware where necessary. However, games are unique in that they can benefit greatly from certain types of hardware, such as 3D accelerators and sound cards with digital signal processors. Games also suffer the most from background applications and out-of-date drivers. Here are some ways to improve performance in the more processor-intensive games:
-
Most high-end games rely on DirectX, essentially a set of optimized video, sound, and game input drivers supported by Microsoft. Make sure you have the latest DirectX drivers by using the Windows Update feature (see Chapter 6) or going to http://www.microsoft.com/directx/.
-
Many games are also optimized to work with specific types of video and sound hardware. For example, a particular game's setup screen might allow you to choose between Direct3D and OpenGL for the video output; sometimes you even need to choose a particular video chipset (e.g., nVidia GeForce4). Your 3D accelerator might support several standards, but a given game might run better using the DirectX drivers, and another game might prefer the OpenGL setting.
-
The speed at which a video card can draw to your screen is somewhat dependent on the current color mode and resolution (see the discussion of video cards in Section 5.3 later in this chapter). If your games are running slowly, try reducing the color depth and resolution either globally in Windows or in a particular game's setup screen (if it supports it) to increase the speed. It's funny, though I've seen some games run smoother in 24-bit mode than 16-bit mode, even though in theory the extra colors should cause a performance hit. Better video cards will not show any performance hit when run at higher resolutions or color depths.
-
Games are highly optimized for speed, which tends to make them finicky a game might run beautifully with one video card but horribly with another. Check the documentation (manual, readme file, online FAQs) released by the game manufacturer for details that may affect you. Also look for updates to the game software that can fix performance issues, as well as add features and even new levels. Check the web sites of both the video card manufacturer and the game manufacturer for tips and patches.
-
Most 3D accelerators and even some games allow you to modify or disable certain 3D features, such as 8-bit palletized textures, gamma adjustment, zbuffer, and bilinear filter. In most cases, you'll probably just end up leaving these alone. However, some games might have conflicts with some hardware, and fiddling with these settings may make one or more of your games run smoother. Game fan web sites and discussion boards are the best places to find recommended settings relating to particular games and hardware.
-
Any unnecessary background applications should be disabled, either temporarily or permanently. Each program that runs invisibly or in your system tray takes precious CPU cycles away from the processor-intensive games and can make the difference between 20 frames per second and 30 frames per second. See Section 5.1.3 elsewhere in this chapter, as well as "The Places Windows Looks for Startup Programs" in Chapter 6, for details.
-
If a game runs off a CD or DVD, the Windows Autorun feature, which continually polls the CD drive, can sometimes interrupt data transfer. Symptoms include hiccups in video clips and music and slow loading of levels. See Section 4.4.4 for details. Note that old CD drives can also cause problems like this; for more information on improving CD drive performance, as well as upgrading tips, see Section 5.3 later in this chapter. Also try gently rubbing the disk against your shirt to remove dust and fingerprints.
-
If you're playing a network game, either on a local network or over the Internet, you can improve performance by optimizing your network settings. See Chapter 7 for details.
-
Lastly, the performance of high-end games is extremely dependent on game hardware, such as 3D accelerators and sound cards. High-end video and sound cards not only will add features, but also will handle many of the calculations themselves, freeing up your processor significantly. A good 3D accelerator does more than just make 3D performance acceptible at high resolutions; it can even make the renderings look better, too. Your gaming system will actually benefit much more from a fast 3D card than from a doubling of processor power. Likewise, a good sound card with 3D environmental audio and a good digital signal processor (DSP) can add background sounds that will bring any game alive, without eating up processor cycles. I'm not trying to sell you any hardware, but don't overlook the value of dedicated hardware if you're serious