Thursday, November 15, 2007

The Mysteries of Defrag Testing

I have spent several days testing various defrag programs, and I'm now completely baffled by the results. (Shorter times are better.) I'm not surprised that PerfectDisk 8, Puran Defrag 3, and JkDefrag 3 all produced better results than a fragmented installation of Windows XP. What is baffling is why the other programs do worse, particularly Diskeeper and UltimateDefrag.
I have done my best to correct the results. I took measurements of 655 files, and then discarded all but 483 of them, because the numbers were too low in at least one set of results, implying that the file was being read from cache RAM, not the hard drive. What I don't understand is why the final WDD result would be so different from the first one. The "raw" data is shown below.
Clearly something else is changing. I did not do a complete Windows reinstall after each test, because of the problems with getting a sector-based backup to work. Perhaps that has something to do with it. The UltimateDefrag (UD) result was obtained using its "Auto" setting, and I'm sure that further experimentation with the other options will give a more realistic result.
Part of the problem could be that programs like Diskeeper and UD move "old" files to the slower part of the drive. Since the oldest files on the drive include a lot of WinXP system files, this may not be such a great idea. PerfectDisk puts newer files at the end, which would include new WinXP patches, but I haven't checked. It "knows" which files are used at startup, so this may account for a better performance than DK and UD. Perhaps I'll include the file dates in my next round of testing. In the meantime, I wouldn't give these results too much significance.
Update: I have found a replacement hard drive without sector errors, and installed Windows XP again. Tests are beginning with an updated version of the "Prefetch File Processor" program that will note the file creation date as well. I will run tests on most of the programs reviewed in this blog, and publish them as the results become available.


Unknown said...

Hi Donn,

In your previous entry you mentioned you are welcome to comments on your testing. Given that Jeroen Kessels, last week, noted that he is planning to support prefetch (noting it currently does not - but he is planning it), and JKdefrag performed the best of any third party tools, it seems their may be an error in the testing procedure. Google "prefetch" and "Jeroen" to find the comment in his forum.

I think it is also key to consider what a defragger might do with these files. A short list of options would include, 1. ignore and do what you want (move files anywhere), 2. leave it alone entirely (hands-off), 3. move it as a group exactly as the layout.ini describes, 4. considers what is and isn't relevant to bootup and move (as a group) only what is appropriate.

Obviously file placement algorithms may be used instead (part of option 1 above) and the location of the group on the physical disk (forward or backward) can affect results.

This may also be of help in your testing; Google "diskeeper" and "prefetch". The first return is old (regarding Diskeeper) but provides some good info on what WDD is doing and the real world validity of pre-fetch.

Also the bootvis.exe tool from MS can help in your testing.

Andre Crespo said...

I use 4 defragmenters: DK2007 Pro Premier, PD since version 2000, O&O Defrag Pro 10 and UD last 6 months.
Since tried UD I leave other defragmenters. But I don't like the results of Auto option. The best thing of UD is the custom options. I my case when use Recency based on Access date/time files with option to place most recent files most outer on disc is the best. This option is recommended for this almost full in user manual. When my disc was 50% full I used consolidate with archive only some folders and high performance all folders of programs I use all the time, including windows and subdirectories (excluding directories with backup of installed patches).
The secret of UD is have time to analyse each directory to decide if you need in archive or high performance. This give you the exact max performance you can.