One of the most common complaints I hear about Windows is that it is slow to start up. Everything is fine when a machine is new (especially if it is a clean install or purchased from a Microsoft store, and therefore free from foistware), but as time goes on it gets slower and slower. Even a fast PC with lots of RAM does not fix it. Slow boot is one of many factors behind the drift away from PCs to tablets, and to some extent Macs.
As far as I can tell, the main reason PCs become slow to start is one that has been around since DOS days. Some may recall fussing about TSR – Terminate and Stay Resident – applications that would run at startup and stay in memory, possibly causing other applications to fail. Windows today is generally stable, but it is applications that run at startup that cause your PC to start slowly, as well as having some impact on performance later.
I install lots of software for testing so I suffer from this myself. This morning I took a look at what is slowing down my desktop PC. You can view them easily in Windows 8, in Task Manager – Startup tab. A few of the culprits:
- Adobe: too much stuff, including Service Manager for Creative Suite, Creative Cloud connection, Acrobat utilities
- Intel Desktop utilities – monitors motherboard sensors
- Intel Rapid Storage Technology – monitors on-board RAID
- Sync applications including SkyDrive, Dropbox, SkyDrive Pro (Groove.exe)
- Seagate Desktop, manage your Seagate NAS (network attached storage)
- Google stuff: Google Music Manager, Google update, some Chrome updater
- Plantronics headset updater
- Realtek HD Audio Manager
- Fitbit Connect client
- Microsoft Zune auto-launcher
- Microsoft Lync, famously slow to start up and connect
- Roccat Gaming mouse settings manager
- Flexera “Common software manager” (InstallShield updater)
Many of these applications run in order to install a notification app – these are the things that run at bottom right, in the notification area of the taskbar. Some apps install their own schedulers, like the Seagate app which lets you schedule backup tasks. Some apps are there simply to check for updates and inform you of new versions.
You can speed up Windows startup by going through case by case and disabling startup items that you do not need. Here is a useful guide. It is an unsatisfactory business though. Users have no easy way to judge whether or not a specific app is doing an important or useful task. You might break something. When you next update the application, the startup app may reappear. It is a mess.
Microsoft should have addressed this problem aggressively, years ago. It did put great effort into making Windows boot faster, but never focussed on the harder task of bringing third-parties into line. A few points:
- If Windows had a proper notification service, many of these apps would not need to exist. In Windows 8, it does, but that is little help since most applications need to support Windows 7 and even in many cases Windows XP.
- The notification area should be reserved for high priority applications that need to make users aware of their status at all times. The network connection icon is a good case. Printer ink levels are a bad case, aside from reminding us of the iniquity of printer vendors selling tiny ink cartridges at profiteering prices. In all cases it should be easy to stop the notification app from running via a right-click preference. The Windows 7 idea of hiding the notification icons is counter-productive: it disguises the problem but does not fix it, therefore making it worse. I always set Windows to show all notifications.
- Many tasks should be done on application startup, not on Windows startup. Then it is under the user’s control, and if the user never or rarely runs the application, no resources are grabbed. Why do I need to know about an update, if I am not running the application? Have the application check for updates each time it runs instead.
- It is misguided to run a process on start-up in order to speed up the first launch of the application. It may not be needed.
- If a background process is needed, such as for synchronisation services, why not use a Windows Service, which is designed for this?
- Windows has a scheduler built in. It works. Why write your own?
Of course it is too late now for desktop Windows. Microsoft did rethink the matter for the “Metro” personality in Windows 8, which is one reason why Windows RT is such a pleasure to use. Apple does not allow apps to run on startup in iOS, though you can have apps respond to push notifications, and that strikes me as the best approach.
Update: I should mention a feature of Windows 8 called Fast Boot (I was reminded of this by a commenter – thanks Danny). Fast Boot does a hybrid shutdown and hibernation:
Essentially a Windows 8 shutdown consists of logging off all users and then hibernating.
This is almost another subject, though relevant. Microsoft has for years sought to address the problem of slow boot by designing Windows never to switch off. There are two basic approaches:
Sleep: the computer is still on, applications are in memory, but in a low power state with screen and hard drives off.
Hibernation: the computer writes the contents of its memory to disk storage, then powers off. On startup, it reads back the memory and resumes.
My own experience is that Sleep does not work reliably long-term. It sometimes works, but sooner or later it will fail to resume and you may lose data. Another issue on portables is that the “low-power state” is not as low power as it should be, and your battery drains. These factors have persuaded me to shut down rather than sleep.
My experience of hibernation is better, though not perfect. It usually works, but occasionally fails and again you lose data.
Fast boot is a clever solution that works for some, but it is a workaround that does not address the real issue which I have outlined above: third-party and Microsoft applications that insist on automatic start-up.