Debunking yet another bogus Windows tip

Updated 25-May-2005: Finally! Some authoritative input on this issue! Ryan Myers, a developer on Microsoft’s Windows Client Performance Team, wrote a very informative blog post, “Misinformation and the Prefetch Flag,” that clears up several of these issues. I’ve revised some remarks below in accordance with his entry.

In today’s tip of the day, I warned about following advice from so-called Windows experts who don’t really know their stuff. Case in point: the thousands of Web sites that pass along the bogus advice to clean out your Prefetch folder. (No! Don’t do it!)

A commenter who read that tip asked a great question:

What do you think about adding /prefetch:1 to shortcuts? Does it make any difference? I’ve read on several forums to use the switch for quicker application launches but I haven’t really noticed any increase in speed.

I’d never heard of this tweak, so I did a Google search for prefetch switch program shortcuts and found more than 10,000 Web pages that advise making this speedup tweak. In the rest of this post, I explain why they’re all wrong.

A typical entry was this almost comical thread on the message boards at Winguides.com, in which one self-taught expert pitches this tip and then fends off all requests for a link to any documentation that might explain why this tweak should work. (He gets pretty huffy about it, actually, and the level of forced politeness in this exchange is unintentionally hilarious.)

This urban legend got started, apparently, when someone took a close look at the properties of the Windows Media Player shortcut in Windows XP and noticed that the shortcut included this parameter at the end. (See for yourself: Right-click the Media Player shortcut on the Start menu or the Quick Launch bar, click Properties, and look at the value in the Target field, as I’ve done here.)

Wmp_shortcut

Based on this entry, someone leaped to two unjustified conclusions:

  1. They assumed the /prefetch switch here is directly related to the files and settings stored in the Prefetch folder. According to this logic, adding /prefetch:1 forces Windows to look in the Prefetch folder when the program runs, so that it can use those settings to load it faster.
  2. They assumed that this same switch will work with any program. Most variations of this tip suggest that you add the /prefetch:1 switch to the end of all your program shortcuts and even edit the registry in several places to speed up program loading.

Unfortunately, these assumptions are wrong and wronger. [Update: Ryan Myers explains that one of my original assumptions was wrong also. The /prefetch flag is not specific to Windows Media Player. It can be used when you start any process. However, it doesn’t do what the tipsters think it does, as he explains in more detail here:

The /prefetch:# flag is looked at by the OS when we create the process — however, it has one (and only one) purpose. We add the passed number to the hash. Why? WMP is a multipurpose application and may do many different things. The DLLs and code that it touches will be very different when playing a WMV than when playing a DVD, or when ripping a CD, or when listening to a Shoutcast stream, or any of the other things that WMP can do. If we only had one hash for WMP, then the prefetch would only be correct for one such use. Having incorrect prefetch data would not be a fatal error — it’d just load pages into memory that’d never get used, and then get swapped back out to disk as soon as possible. Still, it’s counterproductive. By specifying a /prefetch:# flag with a different number for each “mode” that WMP can do, each mode gets its own separate hash file, and thus we properly prefetch.

So, another program could use this flag to create separate hashes in the Prefetch folder that would allow different sets of data to be prefetched for different purposes. But no app does this except Windows Media Player.]

The /prefetch switch is specific to Windows Media Player. It controls the amount of content that is buffered when you begin playing a media file. The number that appears after the switch defines the amount of content to be buffered (“fetched”) before playback begins. If you look through the registry, you’ll see that the number that follows the /prefetch switch varies for different types of media files. MP3 and MPEG files use /prefetch:9, while Audio CDs use /prefetch:3. DVDs are 4 and AVI files are 8. The exact meaning of each /prefetch setting for Windows Media Player isn’t documented anywhere that I can find, but you can read all about the basic principles in this extremely technical article aimed at driver developers. (And no, I don’t recommend messing with this parameter for different media types; I assume that the WMP developers know best about this setting.)

Given that this parameter is designed to improve media playback performance for a specific program (Windows Media Player), it’s pretty silly to think that it will have an effect on Windows Messenger or Windows Explorer or WordPerfect, as WinGuides.com recommends. (And if it did, why not use a bigger number? Why stop at /prefetch:1? Why not go to /prefetch:9 or, for that matter, all the way to /prefetch:11?)

What they don’t realize is that a program’s developer defines which command-line switches work with that program. If you stick a random unsupported switch at the end of a shortcut, the program will either ignore it or give you an error message. But it won’t magically speed itself up, any more than it would if you were to tack the /abracadabra switch on the end of the command line.

I find it remarkable that there are more than 10,000 Web pages containing some variation of this tip. Like all urban legends, misinformation of this type takes on a life of its own, and pretty soon people start to believe it’s true because they’ve read it on so many Web pages.

[Update: Ryan Myers reinforces this conclusion when he says, “I suspect that the ‘add /prefetch:1 to make rocket go now’ urban legend will never die, though. I know that at least one major company ships products with it in their shortcuts, without ever asking us… just for good measure, I guess.  :-P”]

My advice? If someone tells you to make this “tweak,” scratch them off your list of trusted information sources. They don’t know what they’re talking about.

18 thoughts on “Debunking yet another bogus Windows tip

  1. Thanks for clearing that one up, Ed. I was always very skeptic about the effectiveness of this ‘tweak’. I’ve come across it so many times, especially in the Firefox forums. And a lot of people seem to be completely convinced that it works.

  2. You’re welcome. And just to make things completely confusing, be aware that there is a Firefox-specific prefetch feature, which has nothing to do with either of the things I wrote about here! The Firefox prefetch loads Web pages based on tags put into the page itself. I’ve written about this feature here and here.

    So that’s three completely different features, all with the same name (prefetch), that can be found on a typical Windows user’s computer. No wonder people get confused!

  3. That’s the funniest article I’ve read online in a week! I do recall the Firefox prefetch parameter being hocked as one that increased startup speed, but with Firefox 1.x, I think it’s no longer needed. Although the /abracadabra switch might be worth trying with OpenOffice 2.0. Maybe inserting /WinningLotto in Excel’s command line might make something happen.

  4. This stuff is a hoot! I have learned, mostly the hard way, never to accept “tweaks” like this one on the word of someone who acts like he knows what he is talking about when, in fact, he doesn’t. In my experience, 99.9 percent of these “tweaks” are offered without any persuasive explanation of exactly why or how they supposedly “work” (e.g. they don’t link to any Microsoft KB articles) and without any suggested method or gauge by which a user can objectively verify any actual,transparent improvements in performance.

    Ken

  5. I do a great deal of work on Windows systems, particularly in the area of computer forensics and incident response. If I find something interesting that I want to share, my first step is to attempt to find documentation relating to the behaviour. If I can’t locate any, and queries to contacts within MS turn up the same results (or worse, require an NDA), I’ll document my methodology so that someone will be able to replicate and verify my findings.

    Maybe there’s a way to add a sound file as a resource to an executable, and when someone adds a useless switch to a command line, have the exe play the sound file. Napolean Dynamite’s “Idiot!” would work well… 😉

    H. Carvey
    “Windows Forensics and Incident Recovery”
    http://www.windows-ir.com
    http://windowsir.blogspot.com

  6. Check my posted url… I found a program that uses the /prefetch:1 flag! I also stumbled upon a rather vocal advocate for the flag as well. Tsk tsk.

  7. Did you know this one:
    Start firefox (1.0.7 or later) with that /abracadabra switch in the command line.
    Click the Help menu, then push ctrl + Shift, and holding those click ‘Info’.
    You”ll see Harry Potter in the muggle-world.

  8. I’m the one who discovered this tweak and stand by it. You can throw all of your negative authoritative pronouncements that you want at it, but the bottom line is that it works.

    started xp’s sys restore utility and it took approx 3 seconds to display on the screen. added the switch and it displayed immediately. there’s no way you can tarnish that!!!

    The Wizard

  9. The Wizard, NO it does NOT work. I’ve tested it on various systems and with various applications. It does absolutely nothing but create ANOTHER prefetch file.

    You have to cold boot in between tests! Otherwise the second time you lauch the same application in the same session various files will already be preloaded into memory from the last time you launched it. Just because you close an application down does not mean all the files it used get flushed from memory immediately.

    Stop spreading this Myth Wizard!!!

  10. Ed, you’re a c*nt and an a$$hole but on this occasion, I’m happy I listened to you!

  11. If the /prefetch:1 myth were true, than why is it only used on WMP? You think Microsoft would use it to boost all of their programs, not just WMP.

  12. Jeff, it has to do with the way that WMP works. Because WMP can play many different types of media files, its startup behavior varies depending on the type of file you clicked to open it. So there are actually several variations of the /prefetch switch for WMP, not just /prefetch:1. Read the article again and folow the links this time and you’ll see.

  13. a very interesting thread… and thankfully someone (andrew k) has finally mentioned the need to always reboot between each test..!!! maybe it’s so obvious that it didn’t get mentioned from the word go, and yet it’s a typical mistake that beginners make that visit sites like this looking for guidance…

    yes, that thread mentioned at the beginning of this article was hilarious, even more hilarious is the fact that tweakxp.com (the person asking for the documentation on this prefetch flag nonsence) has this myth posted on their website as a performance improvement..!

  14. “Maybe inserting /WinningLotto in Excel’s command line might make something happen.”

    … Thanks man, I put the command in powerpoint and it gave me the winning lotto combination of the week!

  15. When you mention the 10k hits on google I know exactly what you mean.

    For example I see a tweak page, I then decide to google the tweak, more often then not its a registry modification.

    I will usually get thousands and thousands of hits so I click on a few of the links and its always the same, its people simply pasting the tweak in their own hints and tips they are simply telling others to do the same thing. Yet not one single person explains what the tweak does, usually a few dozen pages in to google you get one sensible reply someone pointing to docs on microsofts website or explaining what the tweak actually does and its usually negative.

Comments are closed.