August 1, 2007
I frequently hear apocryphal stories about Macs booting much faster than Windows boxes. There's a great set of Mac boot time benchmarks on the Silver Mac site that provide solid empirical data to back up those claims:
|Mac OS X
|Ready to use
To be clear, the standard convention for "boot time" is the time from initial power on to the time we can finally interact with the desktop. The Silver Mac benchmarks are admirably thorough, as they break out important milestones during boot: the first boot sound, the appearance of the Apple logo on the screen, the OS X loading screen, and finally the ability to interact with the desktop. The intermediate milestones help us see where the real bottlenecks are in the boot process.
For perspective, a 1986 Mac Plus boots to the desktop in eleven seconds. The modern PC it is compared to clocks in at just over a minute of boot time. It's not even remotely a fair comparison for a whole host of reasons, but it's a fun data point nonetheless. How long does it take for your car to boot? Your MP3 player? Your television? Your cell phone?
For typical PC boot times, I turn to Ed Bott's excellent blog.
|Ubuntu Linux 6.10||1:49|
Wow, PC boot times really do suck, right? Well, maybe. It depends on the PC.
The "Ultimate Developer Rig" I built for Scott Hanselman boots to a clean install of Vista x64 in 22 seconds. According to Scott, 10 seconds of that is attributable to the BIOS, and the other 12 is the operating system loading from disk. It's sobering to consider that almost half of the system's total boot time is spent in the third-party motherboard BIOS-- something Microsoft has no control over.
Now, these kinds of speedy PC boot times are only attainable if you have a clean install of the operating system. A clean install is de rigueur for Apple, because they're a single-source vendor. They have the luxury of complete control over the way their operating system is shipped-- not to mention the system BIOS itself. Every Apple box should boot consistently quickly as a matter of course. It'd be a crushing disappointment if they didn't.
On a Windows box, however, you almost never get a clean install. You typically get Microsoft's operating system plus a bevy of performance-sapping craplets the third-party vendor was paid to install on your system. Your boot times are already compromised the second you break the seal on the box.
Tweaking the BIOS to improve boot time is usually out of the question. But it is possible to restore most Windows boxes to near-clean-install boot speeds, at least. The process isn't exactly rocket surgery -- just stop doing so much stuff at startup! The primary tool for turning off unnecessary startup tasks is conveniently built into both XP and Vista: MSCONFIG.
In my experience, anything that wants to runs at boot almost never needs to. It's generally safe to turn off almost everything in the MSCONFIG startup tab. If you have any applets that you recognize and want to run on boot, leave those; for everything else, when in doubt, turn it off. This not only speeds up your boot time, it also frees up memory on the PC. If you later decide you made a mistake, reverting is easy enough-- just run MSCONFIG again and tick the appropriate checkbox.
It's also quite common for your boot time to degrade over time as you install certain kinds of software, as noted by Adrian Kingsley-Hughes:
Sudden changes in boot times are usually quite noticeable, but what usually happens in that boot times grow slowly over time. You start off with a PC with a fresh install of Windows on it and it feels nice and fast (hopefully - if it doesn't then you're in serious trouble and things are only going to get worse, no matter how much you trash your system trying to speed it up). You then install security software and performance takes a hit. Install some big apps like Office and boot times take another nose-dive. I've seen boot times increase by over 100% over the course of setting up a new PC. It's actually quite depressing to watch.
Indeed, and the vast majority of that boot slowdown is attributable to security and anti-virus software, as documented on PC Spy. That's why I urge people to pursue other methods of securing their PCs; if you rely on commercial anti-virus, you are literally crippling your PC's performance. Anti-virus software barely works these days anyway, so it's a raw deal no matter how you slice it.
Of course, the best boot time of all is no boot time-- as Adrian so aptly points out:
How many times a day do you boot up your PC? If you [boot] more than two or three times a day on a regular basis then you're not making proper use of the features that your PC offers, such as hibernate or sleep. My systems can go for days, and sometimes weeks, without a reboot, being hibernated/put to sleep at the end of the day or during any big breaks in the work day. In fact, I like the hibernate feature a lot because it lets me shut my systems down yet leave my work open. Next time I restart the system, all my apps and documents are open and waiting for me.
Even if I did need to reboot my system a few times a day, I don't think that I'd be all that worried about boot times unless they were really long (+3 minutes) or my system was really unstable and needed rebooting several times a day. In either case, there's a problem somewhere that needs to be solved. If the system only takes a few seconds or a couple of minutes to boot up then I'm really not worried about the effect that the lost time will have on my productivity.
He's right. Maybe boot time is ultimately irrelevant; your best bet is to avoid booting altogether. Make use of those "Sleep" and "Hibernation" options in lieu of powering all the way down. Support is fairly mature for these modes, even in the wild-and-wooly PC ecosystem-- and they're many times faster than cold booting and loading up all your applications again.
Posted by Jeff Atwood
Thus spake Jason on August 3, 2007 06:03 PM:
This is like the people who are obsessed with decreasing the amount
of memory in use on their computers -- people, processors and memory
are there to be used, and there's no disadvantage to using both for
worthwhile processes and causes!
When I'm busy doing stuff with my computer (content creation such as graphics and audio) I need an invasive background process like I need a hole in my head. I don't mind spending the cycles; I just want to dedicate them completely to what I'm doing.
Which is why once the next computer gets here, the old system will be used for regular browsing and fetching files with a nice lean virus scanner so that it doesn't muck up my actual workstation. Sadly, not everyone has this luxury.
So nobody here turns there computer off, in order to safe energi?
I think you can never use either sleep or hibernate enough.
Using sleep/standby makes things faster shutting down and booting up (thus saving you a LOT of time over a period of time: http://blog.gadodia.net/index.php/archives/how-to-gain-an-extra-day-per-year/)
Using hibernate let's you power down without closing all your applications and work windows that are open. This saves time because when you bootup next time, you don't have to spend time restoring your environment.
So both (if used rightly) are huge time savers.
A cautionary tale for posterity:
Yesterday I used msconfig to turn off some startup processes. I was fairly conservative, but obviously not enough: this morning I turned on my computer to find a nice problem - I would see everything up to the XP splash screen, and then the monitor would go blank, instead of displaying the login screen. It took me most of the day to get my video back.
This is not a criticism of the post's suggestion, just a heads-up. FYI - if the problem happens, and it is the same one I had, uninstalling the video drivers is what finally fixed it.
"So nobody here turns there computer off, in order to safe energi?"
In the long run sleeping and turning off your monitor saves more energy then booting everyday.
Vista Boot tip, for dev machines:
Set services such as sql server to Automatic(Delayed Start)
I think that it's unfair to compare modern boot times to good-old-days boot times.
In the old days, booting was much simpler then today. Everything was hardwired, and all that the BIOS needed to do was to load its own program.
Today... the BIOS needs to detect the CPU, HD, PNP devices, USB devices.
And that just to find out if you have a USB keyboard or not… :-)
After all that, the OS loads and guess what? It detects everything again.
So maybe today’s performance are slower then years ago, but do you want to go back to hardwiring? I though so.
I use a really small and free program to help out with this: startup - by Mike Lin:
It's very similar to msconfig, but it's accessible from the control panel.
I WILL make my home computer do this! I read the first paragraph, but have to get to work programming and getting things DONE (re:7/31 post)!
The REAL culprit is my HP Print Monitor deluxe print shop that came with my $50 printer. I want to print out - not create the NY Times!
I use a laptop at work, and take it home with me. So I have to boot at least twice a day.
I have tried sleep, hibernate, and hybrid modes. But each of them proves unable to deal quickly with network changes.
At work, I either use the Ethernet or WiFi networks. When I'm at the coffeeshop, bookstore, or at home, I either use a WiFi hotspot, or my Verizon broadband.
If I sleep my laptop at work while connected to Ethernet, disconnect, and then bring it up on my WiFi at home, it takes up to a minute or two for it to figure out that it has a new network, and it's not guaranteed to pass traffic properly even when it does connect to WiFi.
Disconnecting from WiFi at work and connecting to WiFi at home is even worse. The WPA negotiation (and hotspot authentication) usually fails.
Hibernate or hybrid mode doesn't change this outcome all that much.
So I have (for the past many years) always powered down my laptop when leaving work or home. And I've always taken the long hit in getting everything running again (I use my laptop as my primary development environment.)
In my quick testing, I haven't seen this work much better with Vista. If only Microsoft could clean up the networking issues around sleep mode, I (and I'm sure many others) would be very pleased.
deejay, you probably have a setting in your bios called WOL (Wake on LAN) turned on. This means that as soon as your router(for example)sends an internet packet to your PC, it automatically wakes back up!
Hibernate is great but can give you very fragged up RAM if you use it over and over. Just do a quick reboot whenever you have a couple of mins to spare to fix this though :D.
(Fairly)Clean install of XP that I am currently using boots in about 34 seconds. I don't however use AntiVirus because I am behind a router and don't click files named boobs.zip.exe
To prevent me getting pretty much any spyware, I use "Javacool SpywareBlaster". It does not run in the background, instead it just fixes IE and Firefox to ignore spyware and bad sites!
Well...... according to the Energy Star calculator: http://www.eu-energystar.org/en/en_008b.shtml
a PC workstation with a 19" LCD will consume 1,692 kWh/year, if it is on 24 hours a day.
So 800 desktops over 7 years means you have consumed 9,475,200kWh, producing around 919,000 kilos of CO2.
And that is before you look at other costs like other peripherals and all the additional air-con required to keep them cool.
If you only had them switched on for the 8 hours-a-day that they are in use for, then you would only have consumed a third of that.
Graham Stewart on August 3, 2007 07:01 AM
Actually, it's NOT 1,692 kWh/year. It's more like 169.2kWh/year. And then do your calculation. 169.2 * 800 * 7 = 947,520kWh over 7 years.
Thank you very much for the great information.
I just have to report the incredible performance I got from an IBM Aptiva circa 1996: 5 seconds to power up from hibernation !
That's 5s from "power cord unplugged" to "playing minesweeper on the desktop". The computer obviously had an hardware device that would do the hibernation (and other things too).
This kind of performance is long gone now. But I think there is still something to be done about hardware assisted hibernation. Given the price of current hard drives, I believe it would be easy enough to dump the memory on a dedicated 4 GB drive at power down.
I use to mess around with boot configuration on my PCs but I don't bother anymore because I never turn them off. My desktop runs at full power 24-7 with the monitors going to sleep after a period without use. My laptop is only set to sleep because it is never disconnected from mains power long enough to drain the battery.
The only time these systems reboot is after a significant Windows Update and that's configured to happen while I'm in bed. Boot time is just not an issue anymore.
I think it is unfair to compare Mac boot time verus Windows. Apple controls the PC software and hardware. Microsoft only controls the OS and software, not the hardware. So, if you have reseller that installs third party software to the machine, boot times will suffer as these will need to be loaded.
I think you have proven that if you do it yourself, boot times can be fairly quick on a Windows platform.
Yes, there's a good way to speed up your boot time:
Use ANY OTHER DISTRO but Ubuntu!
My Zenwalk system boots up in about 5-10 seconds. Then bam, login screen.
(Yes, I will admit XFCE starts up horrendously slow. But is choice of DE what we're really measuring?)