Looking for Program to measure boot time

biggles

2[H]4U
Joined
Jul 25, 2005
Messages
2,215
I want to track boot times to make sure the computer is starting as fast as it should. Tried a program called Boot Timer and it did not work. Then I tried using event viewer but this was too confusing to figure out. Any suggestions for a program to measure this?

Computer has an SSD and Windows 10. Guessing boot time should be around 20 seconds, is that about right?
 
I want to track boot times to make sure the computer is starting as fast as it should. Tried a program called Boot Timer and it did not work. Then I tried using event viewer but this was too confusing to figure out. Any suggestions for a program to measure this?

Computer has an SSD and Windows 10. Guessing boot time should be around 20 seconds, is that about right?
A little off-topic.
If your build were exactly the same within your signature and using UEFI boot, then I'd suggest to turn off the CSM function in the BIOS if it's on. It will significantly reduce the booting time and have better resolution before entering Windows PS: It won't work if your video card doesn't have an UEFI-enabled V-BIOS. You might search for some update in this case.
 
A little off-topic.
If your build were exactly the same within your signature and using UEFI boot, then I'd suggest to turn off the CSM function in the BIOS if it's on. It will significantly reduce the booting time and have better resolution before entering Windows PS: It won't work if your video card doesn't have an UEFI-enabled V-BIOS. You might search for some update in this case.
Unfortunately this post is beyond my technical understanding. I don't know how to find a CSM function in the BIOS. The bios on the EVGA gtx 780 is 80.80.21.0.80. How do I determine if the video card has an UEFI enabled v-bios?
 
You can do this natively with EventViewer or Powershell. In EventViewer, you'd want to filter for:

In Windows 10 --> Open Event Viewer --> On Right Hand Side is a task pane (see screenshot), select "Create Custom View". Fill in with this (see screenshot).

Event Level: "Warning / Error" (checked)
By Log: Microsoft-Windows-Diagnostics-Performance/Operational
Event: 100 (it's an unlabeled box above Task Category)

Give it a friendly name. In the event, it'll show up under "General Tab" --> Boot Duration : XXXXXms (divide by 1000).



-- Power Shell (better) Method --

- Run an elevated Powershell by going Start > type Powershell > Right Click "Windows Powershell" and select "Run As Administrator"
- Copy / Paste the script below. It'll bring up a fancy GUI with the recorded boot durations.

Script is courtesy of: http://www.happysysadm.com/2014/07/windows-boot-history-and-boot.html

Code:
#requires -version 4.0
#requires –runasadministrator

#Retrieving all events with ID 100

$BootEvents = Get-WinEvent -FilterHashtable @{
  logname='Microsoft-Windows-Diagnostics-Performance/Operational';
  id=100}

#Building a boot history with, for each boot, the duration of the boot process

$BootHistory = $BootEvents | Select-Object TimeCreated, LevelDisplayName,
        @{
   n="BootStartTime";
   e={Get-Date -Date (([xml]$_.ToXml()).Event.EventData.Data |
  Where-Object {$_.name -eq "BootStartTime"})."#text"}
  },
        @{
   n="BootEndTime";
   e={Get-Date -Date (([xml]$_.ToXml()).Event.EventData.Data |
  Where-Object {$_.name -eq "BootEndTime"})."#text"}
  },
        @{
   n="MainPathBootTime";
   e={([timespan]::FromMilliseconds((([xml]$_.ToXml()).Event.EventData.Data |
  Where-Object {$_.name -eq "MainPathBootTime"})."#text"))}
  },
 @{
   n="BootPostBootTime";
   e={([timespan]::FromMilliseconds((([xml]$_.ToXml()).Event.EventData.Data |
  Where-Object {$_.name -eq "BootPostBootTime"})."#text"))}
  }

$BootStartTime = $BootHistory.bootstarttime

$MainPathBootTime = $BootHistory.MainPathBootTime

$PostBootTime = $BootHistory.BootPostBootTime

$LastBootDate = $BootStartTime | Select-Object -First 1

$OldestRecordedBoot = $BootStartTime | Select-Object -last 1

$BootFrequencyInDays = ($LastBootDate - $OldestRecordedBoot).days / $BootStartTime.Count

$AvgMainBootDuration = [timespan]::FromSeconds((($MainPathBootTime.totalseconds |
  Measure -A).average)).ToString("hh\:mm\:ss")

$AvgPostBootDuration = [timespan]::FromSeconds((($PostBootTime.totalseconds |
  Measure -A).average)).ToString("hh\:mm\:ss")

$ActualWindowsBootTime = (Get-Date) - `
  ([timespan]::FromMilliseconds([Math]::Abs([Environment]::TickCount)))

$LastEvent12 = Get-WinEvent -FilterHashtable @{
  LogName='System';
  ProviderName='Microsoft-Windows-Kernel-General';
  ID=12} -MaxEvents 1 | Select -ExpandProperty TimeCreated


#Building an object containing a quick summary of your last computer boot, as
#well as of the average boot duration.

$BootInformation = 1 | Select-Object BootFrequencyInDays, AvgMainBootDuration, `
   AvgPostBootDuration, LastBootDate, OldestRecordedBoot, `
   ActualWindowsBootTime, LastEvent12
$BootInformation.BootFrequencyInDays = $BootFrequencyInDays
$BootInformation.AvgMainBootDuration = $AvgMainBootDuration
$BootInformation.AvgPostBootDuration = $AvgPostBootDuration
$BootInformation.LastBootDate = $LastBootDate
$BootInformation.OldestRecordedBoot = $OldestRecordedBoot
$BootInformation.ActualWindowsBootTime = $ActualWindowsBootTime
$BootInformation.LastEvent12 = $LastEvent12

#Grouping boot events by Level, in order to see if your computer boot duration is below or
#beyond the thresholds defined in the Registry
$BootAnalysis = Get-WinEvent -FilterHashtable @{
  logname='Microsoft-Windows-Diagnostics-Performance/Operational';
  id=100} |
  Group-Object LevelDisplayName

$BootHistory | Out-Gridview

These are times from when WinLoad.exe has begun, so just after POST/etc. It's good for measuring whether Windows boot is getting slower over time (or after a change).
 

Attachments

  • EventViewer_BootDuration.jpg
    EventViewer_BootDuration.jpg
    207.9 KB · Views: 12
  • Like
Reactions: x509
like this
I believe that Glary Tools does. It's kind of intrusive though IMO
 
it all depends on how much stuff you have loading at startup.......
Acrobat update
steam
Java update
weatherbug
CouponClipper
Ebates toolbar
 
Unfortunately this post is beyond my technical understanding. I don't know how to find a CSM function in the BIOS. The bios on the EVGA gtx 780 is 80.80.21.0.80. How do I determine if the video card has an UEFI enabled v-bios?
So I looked up for a manual of GA motherboards.


Here are two screenshots about CSM. According to the manual, you can switch to BIOS Features tab after entering BIOS Utility, then you can turn "Other OS" to "Windows 8" to get the CSM option appear.
For the V-BIOS:
If you find nothing changed after turn off the CSM function, or you find the CSM function has been turned on automatically in the BIOS, then it means that the V-BIOS doesn't support UEFI.
 
You can do this natively with EventViewer or Powershell. In EventViewer, you'd want to filter for:

In Windows 10 --> Open Event Viewer --> On Right Hand Side is a task pane (see screenshot), select "Create Custom View". Fill in with this (see screenshot).

Event Level: "Warning / Error" (checked)
By Log: Microsoft-Windows-Diagnostics-Performance/Operational
Event: 100 (it's an unlabeled box above Task Category)

Give it a friendly name. In the event, it'll show up under "General Tab" --> Boot Duration : XXXXXms (divide by 1000).

Do I have to go through all of these steps again each time after rebooting?
 
Microsoft used to have a program called bootvis that optimized your startup. But along with other detrimental developments I guess it won't work with Win10.
 
I have had mixed success with event viewer, it seems that sometimes it produces the boot times and other times it does not give the most recent ones. Anyway, managed to get boot time measured here down to 27 seconds after following some of the bios advice from gyuce above. Is 27 seconds about right for an SSD boot on Windows 10? I have seen elsewhere people reporting super fast times around 10 seconds, although perhaps those are not really boot times, maybe some type of wake from hibernation mode.
 
I have had mixed success with event viewer, it seems that sometimes it produces the boot times and other times it does not give the most recent ones. Anyway, managed to get boot time measured here down to 27 seconds after following some of the bios advice from gyuce above. Is 27 seconds about right for an SSD boot on Windows 10? I have seen elsewhere people reporting super fast times around 10 seconds, although perhaps those are not really boot times, maybe some type of wake from hibernation mode.

On my Windows 10 with m.2 ssd, it boots in 6 seconds.

It also basically only has NiceHash installed, so not much to slow it down...
 
Anyway, managed to get boot time measured here down to 27 seconds after following some of the bios advice from gyuce above. Is 27 seconds about right for an SSD boot on Windows 10?
I believe it is not right. My old spinner does faster than that. But are you not confusing OS boot time with pc boot time that includes PSU powering on, initial post screens, etc. and is different from system to system despite how fast boot device is installed?
 
Last edited:
I believe it is not right. My old spinner does faster than that. But are you not confusing OS boot time with pc boot time that includes PSU powering on, initial post screens, etc. and is different from system to system despite how fast boot device is installed?

I don't know about everyone else, but for purposes of "speed testing" I start the stopwatch once the Windows loading appears.

I don't generally count the various motherboard/bios loading screens, time it takes for the monitor to turn on, etc, even though it's a better measure of "real life" use. It introduces a ton of variables that the system drive doesn't control.

However, I do see that my Asus Prime Z270 mother board does allow for a 1 second bios display screen instead of the default 3 seconds... *drooling*
 
I believe it is not right. My old spinner does faster than that. But are you not confusing OS boot time with pc boot time that includes PSU powering on, initial post screens, etc. and is different from system to system despite how fast boot device is installed?
The way I recorded boot time is event viewer after doing a restart. Someone else asked about stopwatches. I prefer automated systems in order to have a consistent and accurate measurement. Anyone know precisely how event viewer counts the boot time?
 
However, I do see that my Asus Prime Z270 mother board does allow for a 1 second bios display screen instead of the default 3 seconds... *drooling*

This is something us Mac users don't even need to think about. Having a hibernate that actually works, you forget bios/uefi screens and constant bootups.
 
I believe that Glary Tools does. It's kind of intrusive though IMO
I always recommend Glary Utilities for a ton of little utilities that people often want, boot time measurement (including their assessment of where your rig is in the boot time pecking order) included. How is it intrusive? Don't want to go recommending spyware...
 
This is something us Mac users don't even need to think about. Having a hibernate that actually works, you forget bios/uefi screens and constant bootups.

Think about it when you're paying for that Mac. :)

Seriously though, it's embarrasing how aesthetically unappealing the boot process is for PCs. It's even ugly after Windows takes over. Would it really be so hard to set up some standards so it doesn't look any worse or less professional than a smartphone restarting?
 
Boot Racer worked pretty well. I have used Glary Utilities for other purposes in the past and will give this a try in the future for boot times.
 
Back
Top