How to diagnose slow booting or logon in Windows?
The tools XPerf and XBootMgr from the WPT (available in Windows SDK or below) are great for troubleshooting any performance related problems on Windows; whether it is at boot or hick-ups during a Full HD video, these tools help you to pinpoint the problem. They are free and from Microsoft. :-)
Performance Analysis
Troubleshooting of slow systems can be done like this:
- Download the setup from Windows Performance Analysis Tools for your Windows version.
- Install the software on your system.
Open a command prompt as administrator, and copy paste the next command:
xperf -start perf!GeneralProfiles.InBuffer && timeout -1 && xperf -stop perf!GeneralProfiles.InBuffer myTrace.etl
Press ENTER once to start the command, now you will have to wait till your the action is done.
- Right after your action is done you go to the console and press ENTER.
- After waiting some time a log file myTrace.etl will be produced.
Either analyze this yourself, or if you can't find the issue, upload it and I'll help you:
- Compress this to a zip file, put it online somewhere (perhaps 2shared).
- Share the link here, I will do an attempt to find and show you the cause of your problem.
Boot Analysis
For an user-friendly and simple approach, check @harrymc suggesting Soluto.
For detailed boot analysis, check this document, XBootMgr.exe is available in the WPT I linked earlier.
Following the instructions in the document will result in a similar log which you could analyze or upload...
UPDATE: Soluto has moved on and its software relates now to the mobile world. Soluto’s original “Anti-Frustration Software” is no longer available from the manufacturer; one would need to look on the Internet for an old version of it, which might not still work after all.
A pity, since it was a rather unique product.
Here is an archived copy of their website. Their URL now redirects to asurion.com, which appears to offer technical services, but no products.
Soluto is an excellent boot-analysis product.
For more info see: Soluto Figures Out What’s Bogging Down Your PC (And Tells You How To Fix It).
I have an additional suggestion for tracking boot time. It is via Event 100 in Event viewer. Drill down this chain:
Eventvwr
-->Applications and Service Logs
-->Microsoft
-->Windows
-->Diagnostics - performance
-->Operational
-->Event ID 100<--
Then double click on Event 100 which gives you this small window indicating the boot time.
Then click on the 'Details' tab which gives you all this additional information from which you should be able to determine the process which takes the most time during boot.
EventData
BootTsVersion 2
BootStartTime 2015-04-09T15:19:05.671600300Z
BootEndTime 2015-04-09T15:21:34.500099800Z
SystemBootInstance 1174
UserBootInstance 1155
BootTime 24239
MainPathBootTime 12239
BootKernelInitTime 19
BootDriverInitTime 291
BootDevicesInitTime 906
BootPrefetchInitTime 0
BootPrefetchBytes 0
BootAutoChkTime 0
BootSmssInitTime 8551
BootCriticalServicesInitTime 410
BootUserProfileProcessingTime 823
BootMachineProfileProcessingTime 70
BootExplorerInitTime 499
BootNumStartupApps 7
BootPostBootTime 12000
BootIsRebootAfterInstall false
BootRootCauseStepImprovementBits 0
BootRootCauseGradualImprovementBits 0
BootRootCauseStepDegradationBits 0
BootRootCauseGradualDegradationBits 0
BootIsDegradation false
BootIsStepDegradation false
BootIsGradualDegradation false
BootImprovementDelta 0
BootDegradationDelta 0
BootIsRootCauseIdentified false
OSLoaderDuration 1894
BootPNPInitStartTimeMS 19
BootPNPInitDuration 932
OtherKernelInitDuration 411
SystemPNPInitStartTimeMS 1338
SystemPNPInitDuration 265
SessionInitStartTimeMS 1609
Session0InitDuration 4563
Session1InitDuration 553
SessionInitOtherDuration 3434
WinLogonStartTimeMS 10161
OtherLogonInitActivityDuration 686
UserLogonWaitDuration 182