Home » Questions » Computers [ Ask a new question ]

Microsoft Performance Analysis: how do I know when the boot process is done?

Microsoft Performance Analysis: how do I know when the boot process is done?

I got the program to work, but I can't seem to figure out how to get boot events. I tried actions, but Microsoft's documentation is severely lacking.

Asked by: Guest | Views: 87
Total answers/comments: 2
Guest [Entry]

"At first, I’d like to recommend the following document about the Windows boot process and performance analysis:

http://www.microsoft.com/whdc/system/sysperf/On-Off_Transition.mspx

It's quite long, but it describes almost everything you need to know. While you're at it, take a look at the Xbootmgr documentation on MSDN:

http://msdn.microsoft.com/hu-hu/library/cc526988(en-us).aspx

The quick solution is:

Run Xbootmgr to capture a timing trace

xbootmgr –trace boot -traceFlags base+cswitch+compact_cswitch

(setting –traceFlags to this results in smaller trace file sizes and less impact on boot performance)
Run Xperf to process the trace file to XML

xperf –i ""boot_base+cswitch+compact_cswitch_1.etl"" –o boot_1.xml –a boot

where -i stands for input file and -o stands for output file
Open the XML file with Internet Explorer and accept the security warning, so you can collapse and open XML nodes

The boot process consists of five phases:

PreSMSS
SMSSInit
WinLogonInit
ExplorerInit
PostExplorerPeriod

The end of ExplorerInit means the desktop is displayed (ExplorerDesktopReady mark in Xperfview). The user can interact with the desktop, but the system is still busy starting background services and startup applications.

During the last phase, PostExplorerPeriod Xperf samples the system every 100ms and checks if it's 80% or more idle. The PostExplorerPeriod phase ends when the system accumulates 10 seconds of idle time (100 time slices).

The total boot time is therefore calculated by subtracting 10 seconds from the endTime of PostExplorerPeriod (or from bootDoneViaPostBoot)

That's 29386 – 10000 = 19386 = 19.386 seconds on the above picture.

Based on my experiments, it seems the ""boot done"" mark of Bootvis equals the ExplorerStartMenuReady mark of Xperfview.

Note: the above traces were taken on a Windows XP virtual machine running in VMware."
Guest [Entry]

"These are ""human"" requirements and are easily handled with a fuzzy controller.
You can even estimate the startup completion percent and the remaining seconds by means of it.
This is a simple and free app that implements it:

http://www.eyesonpeople.com/en/startup-bar/

This application has been completely ideated, designed, developed and distributed by me."