Friday, July 06, 2007

Why windows takes so long to start up.

Most of us have had a brand new computer at one time. It's a great feeling. You boot up windows and within 30 seconds you are surfing the net, checking your email, or playing your favorite game. 10 months down the road things aren't so nice anymore. You power up your computer and it seems to take forever to load.

Even when you are careful about what you install it seems that each day it takes longer for it to boot. It's not your imagination - and there are a couple of good tips to keep your boot time short and sweet.

As always - backup your system before you start any of this. If you make a mistake you might need to restore from backup

Update (09/08/2006) - There has been some controversy about the prefetch folder. I think this issue needs to be looked into. I did have a reputable source for this information: It was the "Windows XP Annoyances" book by O'Reilly. Page 210. Titled "Keeping an eye on prefetch"



1. The prefetch cache

The first tip I want to talk about is the windows prefetch. Windows XP has this feature that loads commonly used programs - at boot time.

Here is how it works: Yesterday you used MS Word, and Duke Nukem 3D. Today you boot your system to check e-mail. It sees parts of these two programs in the prefetch folder and loads them into memory before windows completes the boot process. The benefit is faster application launch times. If you really wanted to use MS Word, it would pop up really quick when you double clicked on it.

The problem is most people have been running windows for years, and the prefetch gets clogged with stuff that you almost never use. Windows takes forever to boot because it is prefetching a 1.0 copy of Napster, and you just want to check your email before you have to go to work.

What can be done about it? Well there are a few things we can do to tweak the prefetch cache. One method is to disable it partially, and this can be done quite easily.

Simply browse to the windows folder (Ex: C:\Windows) and under there you should see the prefetch folder. Go into the prefetch folder and delete all the files (Careful! It should look like this c:\windows\prefetch) And here is a screenshot of one if you still have questions



The first thing to note is the next reboot will be slow. This is because windows needs to relearn the prefetch for system files. Subsequent boots will run much faster since the sludge of programs has been removed, and only new ones are in the cache.

The trouble is that it will only help you for a while - until the prefetch gets clogged up again. We need to edit a registry key to tweak it. Open regedit and browse to this key:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters

Under this key you should see a value named: EnablePrefetcher

It has 4 possible values:

0 - Disabled : The prefetch system is turned off.

1 - Application : The prefetch only caches applications.

2 - Boot : The prefetch only caches boot system files.

3 - All : The prefetch caches boot, and application files.

We don't want to disable it entirely. This would actually make boot times *longer*. This is because this feature is also used to speed up the loading of boot files. That is why we are going to pick the number 2 option. It allows us to keep the advantage of caching system files, without continually clogging the system up with applications.

Set the value to 2 and reboot.

The 2nd time you boot it should boot much faster. Remember that the side effect is that launching individual applications once windows has loaded will now be slightly slower.

2. Hard drive fragmentation

Over time your hard drive will become fragmented. An over simplified explanation of fragmentation is when your files and folders are not all stored in the same spot. For example lets say you had a large movie file. If it were fragmented the first 5 megabytes are at the beginning of the hard drive, and then next 5 are at the end. It takes longer for windows to read the file than it would if it were all in the same spot. The point is that if each file is stored in a linear fashion, and the drive does not have to move all over the place to read it - it will load faster. XP has a built-in defrag tool, and it is simple to run. Open "My Computer" right click on the boot drive, and go to properties. Now click on the tools tab.

Click "Defragment Now" and the following window should appear:



Before you click on the "Defragment" button you want to close all applications and be aware that it might take hours to complete. If you leave something running it might keep windows from completing the defragment operation.

Click on the defragment button and you can walk away. Or you can watch it defrag your hard drive:



3. Disconnected network drives

I am using networked drives all the time. If you have ever put your machine on a network and connected to a shared drive, this can slow you down too. If you have a drive that is still mapped, but cannot be reached it will slow down windows during boot time. This is because windows will wait...wait...and wait some more for the remote server to respond. To clean these out open "My Computer" and go to the tools menu. Click on "Disconnect Network Drives" It will open a window that looks like this:



Click on the drives you no longer need, and click OK.

4. Spyware & Adware

These can have a big impact on your start times. If your PC gets loaded with spyware, it spends a large portion of its boot time making sure those pesky programs are loaded and ready to throw popup adverts at you all day. To check and clean your system of spyware there are three free programs that I highly recommend:

1. Microsoft Windows Defender

2. Ad-Aware

3. SpyBot Search And destroy

5. File and Printer Sharing

One other item that can significantly impact is the "File and Printer Sharing" feature within windows. Obviously, if you are sharing your printer, or folders you don't want to disable this - so this tip is not for you. If you never use it, then why waste your time waiting for it to load?

Here is how to turn it off:

Go into the control panel. Click on "Network Connections"



Now right click on "Local Area Connection" and click on properties

Uncheck the "File and Printer Sharing for Microsoft Networks"



Click OK, and reboot.

That wraps up our windows startup optimization.