Over at Online Tech Tips, I wrote a post on how to use Bootvis to speed up the boot time on your Windows XP or Vista PC. It’s a good tool for optimizing the Windows boot up process for best performance.
The only problem with Bootvis is that it is no longer supported by Microsoft and really won’t work with Windows Vista at all. Luckily, you can analyze the boot up process using a different tool called the Windows Performance Toolkit.
The Performance Toolkit contains three performance analysis tools designed for measuring and analyzing system and application performance on Windows Vista specifically. This tool is really only meant for IT professionals, but if you are comfortable with the command line, give it a shot.
xperf – The trace capture tool that can be used to filter through the captured trace.
xperfview – The visualization tool to view the captured trace. It is also called the Performance Analyzer.
xbootmgr – The boot trace capture tool used to capture everything during the boot up process.
Using these tools, you can capture and analyze a wide array of performance problems such as boot issues, start up times, DPCs and ISRs, application resource usage, and system responsiveness.
The reason why you can get so much detailed information about the boot up process using these tools is because they are built using the Event Tracing for Windows infrastructure.
Event Tracing for Windows (ETW) is what allows programs and the Windows OS generate events. You normally see all of these events in the Event Viewer under Administration Tools. These tools capture all of these events and save them as files called “traces”.
Events that can be captured that provide a great deal of information include registry operations, hard faults, process and thread creation, context switches, interrupts, and lots more.
You can capture a new boot trace using the following command line:
xbootmgr –trace rebootCycle –noPrepReboot
This command will automatically reboot the compute and start the trace. Note that the trace will be outputted to the current directory while at the command prompt. For a more detailed trace, use the following command below:
xbootmgr -trace boot -noPrepReboot -traceFlags BASE+CSWITCH+DRIVERS+POWER -resultPath C:\OUTPUT
This command has a couple of more trace flags which also capture driver events and power management events. Note that you can also use this command to trace not only the Windows boot, but also the the shutdown, standby, or hibernate cycles.
If you want to see all the possible trace flags you can use with xbootmgr and all of the other parameters, check out the On/Off Transition Performance Analyzer document by Microsoft.
Now in order to view the trace file, run the xperfview program. This is the visual analyzer that will allow you to visually see the entire boot process.
Just browse for the .ETL file (trace file) that was generated using the xbootmgr command. Drill down into each of the sections and if you see anything out of the ordinary, then continue until you figure out what the cause of the slow boot up or shutdown is.
Note that there can be many different reasons for a slow boot up process, so make sure to check these factors also:
- Disable the network connection and reboot your computer to see if network timeouts or domain logon are causing the slow boot time
- Disable or unplug any USB and Bluetooth devices to rule out external devices causing long boot times
- Check Problem Reports and Solutions center in Windows Vista to make sure no software or startup programs are the problem
- Check the Event Viewer to make sure there are no events created immediately after a reboot
Hopefully these tools will help you figure out why your computer is booting up slowly, shutting down slowly, or having problems with Standby and Hibernate. Enjoy!