Monday, August 08, 2022

Microsoft Boot Times - Fact Check False

Because I do what I do and I am always impatient when it comes to my computing resources, I decided to do a bit of measurement today. As one often does in these situations. Yes, it would take some time and require tedious recording of timings as well as the creation of a spreadsheet. However, this is me. It's what I do.

So, what was the timing that drove my impatience to experience the same behavior four times in a row to collect metrics? What did I measure?

Boot time.

Yes, that same old metric that has been driving people insane ever since the days of computers began. Having to wait from power up to ready to rumble is frustrating and the investigation proved out some of my theories.

I have an HP ProBook 440 G7 provided by my employer for doing my job that was manufactured in 2020. It's a decent laptop, though a bit weak for a software developer. It also has a persistent overheating problem they have not been able to track down. Still, it's passable.

It runs Windows 10 and while most of you would think to yourself "Of course it does because other than MacOS, what else is there?", well there is Linux. Or all the Linux distros, I should say. They are not all the same though they are of the same family. It's like having a bunch of kids with the same mother and father and raising each one differently.

I digress.

The point is, despite Microsoft's claims of rapid boot times, that is a bit misleading. You could say I just fact-checked their claims of booting in under a minute and gave it a big old FALSE flag.

In determining how long it took my laptop to boot, I carefully watched the performance as soon as I booted up. I found that the CPU remained quite busy for some time after the desktop was displayed. We all knew that was a thing. It was clear that Microsoft just presented the desktop sooner and was still booting in the background. However, what I did not know before was the amount of time it was requiring.

I decided to measure the boot time with a stopwatch app on my phone according to the following distinct boot events:

1. Start timer when power hits the peripherals and monitors.
2. Mark the time when the login screen is displayed.
3. Mark the time when the desktop is displayed.
4. Mark the time when the system monitor shows < 10% CPU usage for 3 seconds (this precedes a second bump in CPU utilization that easily goes to 99%).
5. Mark the second time when the system monitor shows < 10% CPU usage for 3 seconds.

In my estimation, the system is not booted until we reach the point where nothing behind the scenes is going to drive the CPU utilization back up. Hence, fully booted does not occur until event 5.

To not bore you further, here is the summary of doing the test 4 times and using averages over the 4 runs (I was consistent in entering the password quickly and consistently to avoid variations in time measurement):
  • 40.27 seconds to display the login screen
  • 104.83 seconds to display the desktop
  • 162.07 seconds to "false done" before spike in CPU usage
  • 190.53 seconds to fully booted.
As you can see, while it may look like the desktop is displayed in about a minute, it actually takes a little more than 3 minutes to be fully booted and ready to use.

I also want to point out that after booting and running no apps other than the performance monitor, the operating system and software environment consumes approximately 5.1 GB of the 16 GB of RAM, a full 32% of the RAM of the system is used just to start with.

For comparison, I ran the same tests on my aging Lenovo ThinkPad T440 that Runs Linux Mint for comparison. Note that this system is from 2013 and is already 9 years old. 

To keep the comparison as closely matched as possible, I ran the test 4 times and used averages over the 4 runs (again, I was consistent in entering the password quickly and consistently to avoid variations in time measurement):
  • 10.64 seconds to display the login screen
  • 21.64 seconds to display the desktop
  • there is no "false done" before a spike in CPU usage
  • 31.06 seconds to fully booted.
Should anyone suggest that the comparison is invalid because "Windows is fully graphical and does more), that is far, far, from the case. The Linux Mint system is a fully graphical user interface with many variations of the actual desktop look and feel available and can be swapped out. I use the Cinnamon desktop which is a traditional desktop that is quite similar to Windows 10 without all the baggage.

Furthermore, when the ThinkPad completed its boot sequence, it used a mere 0.95 GB of RAM, which is about 6% of 16 GB by comparison.

Another interesting point is that the ProBook has a 10th generation Core i5 while the ThinkPad has a 4th generation Core i5.

Here are the nerd details for the HP ProBook 440 G7

HP ProBoook 440 G7
Intel Core i5-10210U
1.6 GHz - 2.11 GHz - 3.2 GHz
Manufactured 2020 - 2 yrs old
16 GB RAM
Windows 10 Pro v21H2
Win Feat Pack 120.2212.4180.0
OS Build 19044.1826

Here are the nerd details for the Lenovo ThinkPad T440:

Lenovo ThinkPad T440
Intel Core i5-4300U
1.9 GHz - 2.9 GHz - 2.9 GHz
Manufactured 2013 - 9 yrs old
8 GB RAM
Linux Mint 20.3
Cinnamon 5.2.7
Kernel 5.4.0-122 generic

I hope to update this post soon to add in a comparison for my lightning fast Chromebook boot.

In conclusion, Microsoft lies about their boot times and Linux boots faster on x86 laptops and desktops. Argue if you want, but I have done similar comparisons over the years and it has always been the same result.