Wednesday, March 25, 2009

DLLs and booting

My last post about Windows v. Linux boot times garnered some interesting comments - some on other blogs. What strikes me, though, is not that my experience is fairly typical (Linux boots faster) but that people reported such varying boot times for Windows. Some users claim 15 to 25 minutes to boot Windows, others say it takes only a minute.

I understand that it depends on what software has been installed - a "bare" install takes very little time to boot (from power switch to desktop) while systems that have a lot of applications installed take much more time to start up.

Why is that? It doesn't make sense to me that having more applications loaded would affect how long it takes Windows to boot up.

I'm sure I'll hear about DLLs. Linux has shared libraries, which are essentially the same. On Fedora, the Linux distro I am most familiar with, there are lots of shared libraries to support the many applications that get installed on the system: GIMP, Firefox, OpenOffice, Evolution, GTKpod, chat, etc. But Linux system performance obviously didn't suffer from having all these shared libraries installed.

What's unique about how Windows uses DLLs that having many applications installed can make a system slow to boot?


  1. It seems to me that every Windows program comes with it's own special mess of DLLs. Every program is probably loading it's own copy which may be only subtly different, or perhaps even identical, to other versions being loaded. That would certainly slow a machine down.

  2. If anyone cares to investigate further,, has a host of utilities to track performance issues...

  3. "Why is that? It doesn't make sense to me that having more applications loaded would affect how long it takes Windows to boot up."

    I actually have very little idea too; it really doesn't make much sense.

    That said, there are a LOT of programs that have a propensity to put crap in the list of programs that start when the computer boots. Even if most of them are lightweight, it starts to add up. Have iTunes? Starts up ipodservice. Have OpenOffice? I think by default it sets a quick launch thing on startup. Have a virus scanner? Startup process. Software firewall? Runs at startup. Laptop? I've got software that tracks whether the hard drive heads are parked. Have a printer? I've got something running for a printer. Free VMWare server? Service. On my other computer, I've got some service that runs that came with the USB wireless adapter I have, and for some reason is being tricky to prevent from starting. (It may be causing other problems besides resource consumption too.)

    I almost never see anything on Linux that you install after you're done with the original installation that is so eager to add something running at startup.

    This isn't directly related to DLLs, because as you said, it's hard to see how that would affect things. But this sort of thing definitely would degrade performance over time, and isn't really a problem that Linux systems face.

    (Another possibility is that with seemingly more frequent updates to the system, it more easily fragments on the hard drive.)

  4. The problem is not that Windows has a lot of stuff that starts up. The problem is that Windows was never designed as a system that would be good at doing more than one thing at a time, while Linux was designed explicitly to be good at doing more than one thing at a time.

    In addition, there are some fundamental differences in the way the system and software are designed in the two universes. Efficiency is simply a priority in Linux, and it simply is not a priority in Windows. Mr. Windows himself, Bill Gates, has been known to say "Don't worry, the hardware will catch up to the software eventually."

  5. I'm not going to say that efficiency was a big priority for MS for Windows, but saying that it wasn't designed as a system that would be good at doing more than one thing at a time is just plain BS.

  6. One common cause of long boot times is the number and type of items on the desktop. If many of those items are shortcuts to items on network drives, the "boot" time can be very long, particularly if any of the drives are not on the network or the network is not available.

    If the computer is managed by a centralized IT department, the application of the security settings and the execution of admin startup scripts increases the "login to ready-to-go" time. If any of the startup programs require network access and the network is not available or the networked resource is busy or slow, that also can cause the interminably long wait. Some of the scripts that I've examined needlessly exacerbate the problem by not spawning independent commands.


Note: Only a member of this blog may post a comment.