Tuesday, November 13, 2007

The Difference Even a Basic Defrag Can Make

We all love to criticise the built-in Windows Disk Defragmenter (WDD) program as inadequate, clunky or even just useless, but even the humble WDD can make a difference to your system. How about 32% faster read times? I was shocked.
Before we get to the results, a word of explanation. After doing a Windows XP install and running the many updates and reboots required by Microsoft Update, I deleted the contents of the "c:\windows\prefetch" folder, and rebuilt the "layout.ini" file using the "rundll32.exe advapi32.dll,ProcessIdleTasks" command. This required several reboots, but it eventually rebuilt. This data became the basis for the "layout.txt" file used by my new "Prefetch File Processor" program.
The image above shows the before and after effect of WDD being run several times on a newly installed system: Windows XP SR2, with IE7, .NET Frameworks 1.1 and 2, several small utilities, drivers and all relevant updates from Microsoft Update. The "before" situation was a mess: 1975 files were fragmented, and there were over 10 000 free space gaps.
I ran the Analyze and Defragment options once from the "normal" program, then ran "defrag c: -f" five times from the command prompt, and then the "normal" defrag once more. The image above is a composite of the first and last screen shots.
Now the results: my "Prefetch File Processor" program read the files in 14.587 seconds before the defrag, and 9.779 seconds after the defrag. Each time the measurement was taken at least 2 minutes after a reboot, with no other programs running. That's an improvement of 32.96% in the file read time. It's the first of a series of tests I am running that will include Diskeeper 2007, Diskeeper 2008, Puran Defrag 3.0, JkDefrag 3.28, and PerfectDisk 8. The tests aim to show the kind of performance improvement that can be obtained during boot time. it is only one benchmark, and it has its flaws. These will be discussed once all the tests have been run. Of course, it's not just the fragmentation that is an issue: file placement is important too. By moving all the files and directories to the other end of the disk, I doubled the read time to 29 seconds. It was an exercise in weirdness, but still it shows how badly performance can be affected by sloppy file placement.


Anonymous said...

Hi Don,
Can you please do the speed test using UltimateDefrag 1.72 as well (this is a later version than the one you looked at).
I suggest this program as it is specifically designed to place the most used files on the outside (fastest part) of the disk.
I'd be interested to see if that program places the most used files more (or less) efficiently than the others you're testing.

Donn Edwards said...

Sure. I wasn't aware of the new version, and would be happy to take a look.