Do you know that you can speed up Windows startup without using third-party tools? Today, we are going to share with you several tricks which will allow you to reduce the startup time and make your Windows boot faster. Some of them are quite simple, and some of them might be new for you.
What is considered as "startup" in Windows
Windows startup is the set of registry keys and file system folders which are used by Windows to run apps and various scripts. There are many different startup locations but most programs use the following registry keys or file system folders:
- Per-user Registry subkey: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
- The registry subkey for all users: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
- Per-user Startup folder: C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
- The Startup folder for all users: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
- Some Task Scheduler tasks which are able to start when the user signs in (Windows Vista and later).
Tip: You can access the desired Registry key with one click. To open startup folders you can use the following shell commands:
- for per-user startup folder: shell:Startup
- for all users startup folder: shell:Common Startup
Click here to learn more about shell commands.
This is where you start
Reduce the amount apps of that load at startup. In Windows versions before Windows 8 you could use the msconfig (Start-Run-msconfig.exe) utility to see what you had in the startup list. In Windows 8, the same option is provided by the new Task Manager:
The new Task Manager has one benefit - Startup Impact calculation, I would recommend you to take a look at the Autoruns utility by Mark Russinovich. This is a must-have tool for power users, which is able to show you everything that loads at startup in your OS.
Obviously, the less apps you have at startup, the faster Windows will start.
So, the first step is disabling the unnecessary apps loaded at startup.
There is one good rule: if you don't know what the listed app is, then don't disable it.
How to improve startup by reducing the load on the OS
You can significantly improve the startup time by creating your own startup queue. Apps will start one by one and this will reduce the load on OS.
The idea behind this is that multiple apps won't try to load all at once, they will load in a serial order. A simple trick is to create a batch file with the app launch commands and with the "timeout" command after each app.
To make it clean, I will provide a simple example from my Windows 8 installation. I put the batch file that follows into my shell:Startup folder after i have removed two apps I have installed, Yahoo! Messenger and my own, Opaque Taskbar from loading at startup with Autoruns:
start "" "c:\Program Files (x86)\Yahoo!\Messenger\YahooMessenger.exe"
start "" c:\data\portable\OpaqueTaskbar /resident
You can move all other apps this way to the batch file.
If you do not wish to see the console window at every startup, you can build a startup queue with Task Scheduler. You need to create a set of tasks: one task for each app.
On the "Triggers" tab in the 'Create task' window, you have to set a new trigger for the "Log on" event. Notice the "Delay task for" option. It is equivalent to the "timeout" command I used in the batch file above. Use this option to create the startup queue.
The queue can be as follows in case of my Windows 8 system:
- Task #1 - Yahoo! Messenger, "Delay task for" is unchecked - I need no delay for the first started app.
- Task #2 - Opaque Taskbar, "Delay task for" is set to 5 seconds - I have allotted 5 seconds for Task #1 to start and free OS resources.
- Task #3 - Skype, "Delay task for" is set to 2 seconds- I have allotted 2 seconds for Task #2 to start and free OS resources.
- ...and so on.
You need to check your startup settings regularly to get rid of new apps which automatically add themselves to your startup after they are installed. But it is worth it. Once the startup queue in created, you will feel that your Windows startup time is greatly reduced, especially if you have many apps that load at startup.
Make the OS interface more responsive during startup in Windows 8 and Windows 7 - the Jedi's way
Since Windows Vista, Microsoft has been trying to improve Windows startup, so Windows Vista has introduced a "Startup Delay". For any application loaded within the first 60 seconds, Windows Vista runs it at a low priority to reduce the load on the OS.
However, in Windows 7 and Windows 8, this low priority startup feature is disabled by default. You can enable it to make the OS interface more responsive during startup. Note that doing so will make your apps start with a lower priority but your system can be more responsive.
Here are the instructions to enable this feature:
- Open the registry and navigate to the following key:
See our Registry Editor fundamentals.
- Take ownership of the key mentioned above. By default it is owned by TrustedInstaller.
- Change the value of the Delay_Sec value. It is set to zero by default which means "0 seconds for the low priority period". You may change it and set it back to 60 seconds (use decimal value) like Vista does.
- Restore the TrustedInstaller ownership
That's it. To disable this feature, just set the Delay_Sec value back to zero.
If you are a Windows 8 user, in addition to this, I recommend you to check out the following article: How to reduce the startup delay for desktop apps in Windows 8.
Keep the Prefetcher and ReadyBoot features enabled
Make sure that both these functions are enabled in your OS.
ReadyBoot, (not to be confused with ReadyBoost), is a little known feature. After every boot, the ReadyBoost service (the same service that implements the ReadyBoost feature) uses idle CPU time to calculate a boot-time caching plan for the next boot. It analyzes file trace information from the five previous boots and identifies which files were accessed and where they are located on disk.
As for the Prefetcher, it was introduced in Windows XP to cache specific data about the applications you run in order to help them start faster. It was improved in Windows Vista and renamed SuperFetch.
Make sure the "Superfetch" service is started automatically.
Also, checkout the following key:
The "Start" value at this registry key must be set to 1.
Follow these simple rules to ensure a smooth startup:
- Keep the pagefile enabled. Disabling the pagefile can cause all sorts of problems and strange issues. Some applications will simply refuse to start without a pagefile.
- Keep SuperFetch enabled.
When an SSD is used instead of a a hard disk drive (HDD), SuperFetch is automatically ignored by Windows.
- Keep ReadyBoost enabled.
Turning this off will increase boot times.
Defragment boot files
The built-in defrag utility in Windows Vista and later has the hidden option "-b" which optimizes the boot files and improves the startup time.
Run the elevated command prompt, and type the following:
defrag -b c:
where c: is your system drive. This command will invoke boot optimization.
You should know that Windows runs defragmentation upon a fixed schedule. It also includes boot optimization, so the above command runs it on an "on-demand" basis.
There is the "ScheduledDefrag" task in Task Scheduler in the Microsoft\Windows\Defrag folder that performs defragmentation:
You can check that this task is enabled.
Note that if you have an SSD drive, this task may be disabled by Windows. Don't worry. Even if it isn't disabled on an SSD drive, Windows will not defragment an SSD.
Let us know if you found this article useful. Your comments are always welcome.