April 18th, 2007
The final word on Vista startup times As I’ve pointed out in the previous two installments of this series, a properly configured, well-maintained Windows Vista installation should start up in a reasonable amount of time, in most cases taking roughly 10–15 seconds more than it takes to start Windows XP on the same hardware, and in some cases starting significantly faster. But not all Windows PCs are properly configured, and not all are well maintained. It’s possible – indeed, some would say too easy – to turn even a fast machine into one that takes three minutes or more to go from power on to desktop. (And as I noted in the last post, this phenomenon isn’t unique to Windows Vista. Even the “it just works” Mac can get a bad case of the slows, as I found in five minutes of searching on Mac support forums. But I digress.) I can boil down the lessons I learned from months of experience and some very concentrated testing into four basic principles: It should take no more than about 90 seconds for a Windows Vista PC to start up. That means fully awake, alert, and ready to do usable work for you and includes the time it takes for the BIOS to enumerate hardware and hand off control to the boot loader code on the active hard drive. On newer hardware, this number should be much less. Windows Vista’s self-tuning performance mechanisms work. In my tests, for example, I found that one machine started out with boot times of roughly two minutes initially. After a dozen or so restarts gave the SuperFetch boot optimization routines some data to work with, this number had settled at 1:14. I’ve seen similar results on every system I’ve used. Avoid crapware. In Walt Mossberg’s recent article on the subject, he recounted the two-minute-plus start times of his new Sony Vaio and quoted a Sony spokesperson who said those times were typical. (No, they’re not.) Walt noted that there were “two dozen trial programs and free offers” on this PC and he had signed up for a trial version of Symantec’s security software before getting out his stopwatch. Walt added, “I am not singling out Sony here. I would have had a similar experience if I had chosen, say, a Hewlett-Packard laptop.” That’s not true. I included a new HP notebook in my testing and recorded startup times of just over a minute. For the record, I removed the annoying Symantec security software before performing my tests. Use Vista’s sleep mode. The default action for the Off button on a Vista installation is to put the system into a reduced power mode. After a few hours, it saves the contents of memory to the hard drive and shuts down completely. The result is fast shutdowns and fast startups, typically less than 10 seconds on either end. A few commentators look at this as some sort of conspiracy on Microsoft’s part to cover up for failings in its startup time. Sorry, I don’t buy it. Vista’s power management features work better than any previous version and in my experience are much more reliable and robust than the equivalent features in XP. Why not use them? Ed Bott is an award-winning technology writer with more than two decades' experience writing for mainstream media outlets and online publications. See his full profile and disclosure of his industry affiliations.
May 4th, 2007
Microsoft’s hidden diagnostic tool unlocks Vista startup secrets In researching a three-part series on Windows Vista start-up times here last month (Part 1, Part 2, Part 3), I spent hours with a stopwatch, documenting my experience with a handful of machines running a clean install of Windows Vista. As it turns out, I didn’t need the stopwatch, because all the data was right under my nose all the time. Vista’s onboard monitors are constantly recording information about performance and storing it in the new, greatly expanded event logs. It’s an overwhelming amount of information, in fact, and none of the details are documented anywhere. To get to the bottom of the mystery, I sat down with a group of Microsoft engineers for a free-wheeling hour-long conversation about Vista boot times and performance, with a special emphasis on learning how to troubleshoot problems that you might experience. I also collected data from 104 Windows Vista startups and crunched it down to find out just how long Vista really takes to start up. It all starts with Vista’s Event Viewer program. I’ve put together an image gallery showing how you can access the same information on your system. so you can follow along. The key information is contained in the Diagnostics-Performance log, where event IDs 100-199 capture information about Boot Performance Monitoring. (The same log contains information about shutdown times and overall system performance, but for this project I chose to zero in exclusively on boot times.) Want to see how your computer measures up? Click here for step-by-step instructions with detailed illustrations. Every time you start your computer, Windows logs your boot time, starting as soon as the kernel loads (obviously, Windows can’t track the time it takes for your hardware to enumerate itself and for the BIOS to hand off control to the OS loader) and ending after every background service and process has finished loading and the system has been idle for at least 10 seconds. The total boot time is divided into two parts • •
MainPathBootTime measures the time it takes for the system to load all drivers and services that are critical to user interaction and get to the Windows desktop where the user can begin doing things. BootPostBootTime includes all the other drivers and processes that aren’t critical to user interaction and can be loaded with low-priority I/O that always gives preference to user-initiated actions that execute using Normal I/O priority.
If you look in Event Viewer, you’ll see a separate value called BootTime, which measures the sum of these two values. (Subtract 10 seconds from this value to account for the idle time that indicates the boot process is completely done.) In addition, the logs are filled with clues that can help you figure out what went wrong and why a specific startup (or shutdown) took longer than normal. Because the Event Viewer logs save their data in standard XML, I was able to capture this data from 104 startup events on four separate machines and crunch it down to these bullet points:
• • • •
35% of all starts took 30 seconds or less to return control to the user 83% of all starts took 60 seconds or less to return control to the user 70% of all starts completed all boot processes, including low-priority I/O activity, in two minutes or less 94% of all starts completed all boot processes within three minutes
I’ve created a scatter chart using the data from these systems that makes the point visually and used that chart to kick off the image gallery.
In conversations with engineers at Microsoft, I learned that these values are consistent with what they’ve observed over millions of installations monitored via opt-in data collection programs, on an incredibly diverse array of hardware installations. In a follow-up, I’ll explain what I learned about why some startups take longer than others and how you can diagnose and resolve startup problems on a Vista PC.
Vista slow to boot? Get the facts
Is Windows Vista really slow to start up? Microsoft has already measured startup times for you, but they haven't documented the settings. Here's an exclusive look at how to use Vista's Event Viewer to track down performance problems. This graph shows the performance of four separate Windows Vista systems, as measured by Microsoft's own hidden performance monitoring tools. The results bear out the conclusion that roughly 80 percent of the time, Vista systems boot in 60 seconds or less.
Microsoft's Diagnostics-Performance log is well hidden, even buried. But once you find it, you'll unearth a treasure trove of information about startup, shutdown, and other performance issues. To get to this log, expand categories in the left-hand tree until you reach the Diagnostic-Performance\Operational entry.
The sheer volume of information in the Diagnostics-performance log can be overwhelming. To zero in on startup problems, click Filter Current Log in the Actions pane on the right. Then adjust the settings as I've done here. Events 100-199 are specifically related to Boot Performance.
The banner at the top of this window makes it clear that this log has been filtered to include only events in the Boot Performance Monitoring category. The item selected in the top section is rated Critical. The details pane below documents a startup time of more than 105 seconds.
Double-clicking any item in the Event Viewer opens it in its own window, where you can view all the details. This General view provides only a summary. To get more information, you have to dig a little deeper.
Clicking the Details tab displays this view of raw XML code that only a spreadsheet could love. (Seriously. You can save this information and load it directly into Excel in all its XML glory.) For casual troubleshooting, look a little further.
Clicking the Friendly View option translates the XML display into this human-readable equivalent. Zero in on three values here: BootTime is the total time it takes for every system startup activity to complete. The MainPathBootTime is a more relevant measure, calculating how long it takes for you to get to a usable desktop. (BootPostBootTime represents the remainder of the boot process, during which processes and services load in the background and you can do stuff with the desktop.)
All measurements are in milliseconds, so chop off the last three digits to get a reading in seconds. In this example, the full boot time was nearly two minutes? What's happening during that time? One way to find clues is to look for other events with the same time stamp...
The event log documents this possible problem - a service that should take 5 seconds to start took an extra 22 seconds. If this is a one-time incident, it's no big deal, but if it happens again, it's a clue to look for problems in the Services console.
For this startup cycle, Internet Explorer took much longer than normal to start. This could be (and probably is) related to the balky service shows in the previous screen. But it still bears watching in future startups.
Vista's new, improved prefetch routine, called SuperFetch, tries to optimize performance consistently. If you see this sort of event in the logs, it might represent a one-time optimization run after installing a new software program. Still, it bears watching.
I've used the View menu here to group and sort the filtered list of results. You can save a custom view and filter together to make it easier to return to the same tightly focused display for later troubleshooting.