Tweaking Myth: Decrease boot time with msconfig

committed to database on August 9, 2008 at 4:29 pm Eastern Standard Time 16 comments digg this

After reading an excellent article written by The How-To Geek debunking some popular tweaking myths, I too became motivated to seek out and debunk a few myths myself. This is the first of many to come, I’m sure.

The myth goes like this:

Microsoft Windows [insert SKU here] only recognizes one processor core, on multi-core platforms, during boot leading to out-of-the-box slow boot times. With a simple tweak, using the msconfig utility bundled with the operating system, you can increase your boot time!

It seems this myth originated from a post Chris Pirillo made in 2007 on his personal blog, commenting on a reader’s video submission, no surprise there. Pirillo’s lack of real technical experience, combined with the power of suggestion (placebo effect), resulted in the myth appearing on his blog, enabling it to proliferate and remain on the intertubes, to this day.

It is with a heavy heart that I inform you that setting this value to equate to the number of processors (incl. cores), regardless of operating system, will result in absolutely no change in boot time. Enabling this option adds a NUMPROC=[value] entry in your boot loader’s configuration (whether it be boot.ini or bcd-based) that sets the maximum number of processors Microsoft Windows will use.  I quote from “Available switch options for the Windows XP and the Windows Server 2003 Boot.ini files” (KB833721):

This switch sets the number of processors that Windows will run at startup. With this switch, you can force a multiprocessor system to use only the quantity of processors (number) that you specify. This switch can help you troubleshoot performance problems and defective CPUs.

For a short time during boot, it is true that only one logical processor is being used… but in this short period, systems like the clock and power management are being spun up – a task that doesn’t necessitate more than one processor. For details, I suggest you grab a copy of Windows Internals (currently in its fourth revision). Here’s a relevant snippet from Chapter 5: Startup and Shutdown (page 267):

When control returns to the KiInitializeKernel function on each processor, control proceeds to the Idle loop, which then causes the system thread created in step 4 of the previous process description to begin executing phase 1. (Secondary processors wait to begin their initialization until step 5 of phase 1, described in the following list.) Phase 1 consists of the following steps. The boot splash screen of Windows 2000 systems includes a progress bar, and the steps at which the progress bar on the screen is updated are included in this list:

1. HalInitSystem is called to prepare the system to accept interrupts from devices and to enable interrupts.

2. The boot video driver (\Windows\System32\Bootvid.dll) is called, which in turn displays the Windows startup screen. (On Windows XP and Windows Server 2003 systems, the driver presents the same graphic that Ntldr placed on the screen earlier in the boot.)

3. The power manager's initialization is called.

4. The system time is initialized (by calling HalQueryRealTimeClock) and then stored as the time the system booted.

5. On a multiprocessor system, the remaining processors are initialized and execution starts.

Die evil myth. Die.

  1. Singh400 August 11, 2008 at 2:46 pm

    Yes! Someone else who hates Chris Pirillo! Thank god. DIE CHRIS DIE.

  2. die chris pirillo August 11, 2008 at 6:26 pm

    Yes, DIE CHRIS!!!!!!!!!!!!!!!!!!!!!!!111111111111111111oneoneeleventyone

  3. ChrisH August 13, 2008 at 8:21 pm

    A chat regular “SWAT” told Chris Pirillo about the core tweak, No Chris himself. How about going to the actual blog post Chris did and reading it before posting “Die Chris Pirillo Die”.

  4. ChrisH August 13, 2008 at 8:26 pm

    Also, Whomever did this blog post was quoting Windows XP and Windows Server 2003. Just to let you know Chris Pirillo at that time had Windows Vista installed, which is a totally different OS than XP. Also since that post which was quiet awhile ago he has moved over to Mac OSX and has a Mac Pro, Mac Mini, Imac 24inch, MacbookPro 15inch and 17inch. So maybe you should actually do some research on Windows Vista and see if selecting more than one core actually does speed up the boot time. Why would they put that in the boot option if it didnt do anything???

  5. Rafael August 13, 2008 at 8:32 pm

    @ChrisH: Thanks for the comments. I did indeed read the article — I linked to it. The option’s purpose has not changed since it was first implemented in Windows NT Workstation 3.51, therefore no additional research is required. As I quoted in my post, using this option can “help you troubleshoot performance problems and defective CPUs.”

  6. Angel October 6, 2008 at 11:20 am

    Oh well.

  7. Symnunamned October 21, 2008 at 8:35 am

    Good day! bulk triphala

  8. hm February 1, 2009 at 2:54 am

    Funny, cause I read about this tweak in a very respected printed magazine issue 02/2009 called CHIP (in Czech Republic)

  9. bcb April 7, 2009 at 8:03 am

    thx..

  10. Krestort April 23, 2009 at 6:36 am

    Recently one of my friends started an obsession with the actor Nicholas Cage (mostly because their names are both Nicholas – sounds strange but he is strange and that isn’t the point). After asking around the rest of my friends he seems to be a very controversial figure.
    What does the forum think? do you love the all action superhero? Or do you hate the droning voice of the man who does nothing but action shooters?

  11. WolvenSpectre October 4, 2009 at 9:59 pm

    I got a machine built by a Microsoft partner with an AMD dual core 64bit Athlon CPU. I talked to the guy who installed XP Pro on that machine (and he is also a good friend of mine) and he didn’t know about NumProc, but on my machine it was set to 1 and considerably slowed down my boot time. I also used to boot a graphic cpu monitor that would load during boot and it would show a single core running until most of the startup programs were running. It was also apparently that way on another of his several machines. So for me changing the NumProc worked, as would removing it all together.

    Maybe this got started because some other people were like me and someone/something installed added it to the Boot.ini file.

  12. Rafael October 4, 2009 at 10:02 pm

    Sorry, but your performance issues are not related to this value. I already explained above why. Don’t ignore the facts.

  13. Gary Siler October 6, 2009 at 7:01 am

    My question then is what causes windows mail and internet explorer to attempted to dim to almost an invisible site and state that these sites are not responding. Isn’t this a cpu usage issue? Sorry for the interruption

  14. Rob October 28, 2009 at 11:43 pm

    This “trick” actually slowed my boot and shutdown times. Can anyone tell me why? My screen flashes on shutdown, reboot, and boot. I run a HP dv6171cl 2g ram(crap-top). Also how do I change drive letters without jumping through hoops in disk manager?