Windows – Optimizing system start and shutdown

bootdesktop-computerperformanceshutdownwindows 7

It has been 6 months since I brought my desktop having Windows 7 Professional x86. Initially the system rebooted fast and also shut down fast. Now the situation is not same. When started, I see "Welcome" screen for some time and the "Shutting down" for about 3-4 minutes :-0 I understand that I have installed lots of software after I brought it but I guess that's fine else what the use of a PC?

So, how can I optimize the start/shut down time?

Best Answer

Windows startup can be mainly divided into three parts:

  • Windows core system boot

    • This is what I refer to when you see the Windows flag "flying" into the screen (black screen). A this stage windows loads the hardware device drivers mainly.
    • The time Windows spends in this stage is mainly driven by hardware initialization time. To reduce the amount of time spent in this stage you often just have to remove some devices from the system or unplug it. Some devices might make Windows to wait for the device really long, even if you think it wouldn't. For example recently a friend of mine had an issue complaining about long boot times of about 4-6 minutes. It turned out to be just a defective SD-card left in the memory card reader slot. During memory-card reader initialization Windows was reading the contents of the card which was reporting errors. After removing the card the system booted again in less than 1 minute to the desktop.
    • Try disconnecting all devices you don't need - this includes USB devices as well as built-in devices you might have added over years. First try with a minimal system just memory, CPU, graphics and keyboard, mouse as well as screen connected. If it boots fast then, you have found your issue; re-plug the devices until you find a big drop in startup performance.
  • Windows logon screen / graphical mode

    • As soon as you can see the GUI mode with the "Welcome" banner Windows basically finished initialization of core hardware. It then goes on to initialize services, fill caches and pre-load applications.
    • If you see Windows waiting a long time on the Welcome screen before it loads the desktop or displays the user selection screen this is often related to some services which are set to automatic startup mode so Windows will wait for them to start before it lets you log in.
    • Often such delays are caused by some security and/or authentication services. For example I've seen that on recent HP laptops with HP ProtectTools security installed it causes about 20s delay on the Welcome screen if logon security is enabled. The reason is simply that Windows has to wait for the authentication service to come up before it's able to authenticate users by fingerprint etc.
    • You might want to check your Windows services as well:
    • Surf to BlackViper and compare your service configuration to the default values you find in the table. If you have any service on your machine which is not listed on the page then don't panic. You might try to note the current status down (usually automatic) and then set it to disabled for test purposes. If you find your system faster after disabling some services, then reset to the previous state one-by-one and test again unless you found the guilty service. Note that not every service which is not a core Windows service is evil. For example I've just discovered, that when disabling the "nVidia Stereo Service" YouTube 3D videos encoded in WebM play very choppy (even non-3D ones) in Firefox 4.0.1. That's just one example. If you're not sure whether a specific service shall be left disabled, then better ask for it (here?). But for testing purposes all non-core services can be disabled usually without breaking your system.
  • Startup applications

    • At the point in time Windows loads the desktop and you can see the Taskbar, then the boot process is basically completed. The only thing left to be started are your personal startup programs and some services which are in daly startup mode.
    • If this phase takes long then you should check how many applications are automatically launched. To do so you can simply run msconifg.exe by typing msconfig.exe in the search bar and pressing CTRL+Shift+Enter, or just right-click and select "Run as administrator".
    • In the "Services" tab you can also disable services. To be on the safe side you should tick-mark the "Hide all Microsoft services" at the bottom before messing with the services. All other services can be safely disabled temporary (for debug purposes)
    • In the startup tab the tool summarizes all applications run either by a shortcut in the startup start menu folder or a "run" registry key. Basically this includes HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run and HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run (64-bit systems have an additional dedicated 64-bit path). You might just uncheck basically all startup items here for testing or click the "Disable all" button at the bottom right.
    • After doing your changes in msconfig just reboot and check whether it reduced startup time. Then try re-enable them one-by-one to find the ones which really take long. Alternatively you might find some startup items which you don't use at all. So just keep them disabled or even think about uninstalling the application.

Of course there are many other possible factors which could make Windows to boot slow. Including hardware failures.
I strongly advise also to check the system and application event log (start event viewer) and check for any errors. It might give indication about failing devices. For example if your HDD is about to fail it might cause delays by required read retries - this could delay startup a lot and decrease overall system performance.

Another approach you can try:
If your system seems to continuously access your hard drive or your CPU is always fully loaded it could have a big impact on overall performance too. Open the task manager and look for tasks which show a high CPU usage.

To get a more close overview about what's going on inside your system I recommend launching the Resource Monitor. It will be able to show you CPU, Memory, Disk and Network activity per process. So it's easy to find processes which are causing a lot of system load.

In most cases processes which cause big Disk I/O load will have the most impact on system performance. In Resource Monitor go to the Disk tab and sort the process list by "Total (B/sec)".

Also make sure to visit your hardware vendor update sites and update to the latest driver versions for all components.