Defraggler is at the top of the speed list when it comes to Defragmentation software.
Or is it?
I've been running a few experiments on IDE, USB, and SATA drives in the 7200 RPM range. (Aka: Average drives.)
The test pc is a 2.4gh, with DDR1 ram, running Windows XP Pro Service pack 2 (Aka: Nothing special or fantastic.)
There is roughly 6TB of data storage capacity on this pc, dispersed between EIDE, SATA, and USB drives, ranging from FAT32 to NTFS. and across them, 4tb of data is used.
I've discovered something rather fascinating.
Unless you've specific file dynamics intended for your hard drive, such as keeping movies and zip files at the end of the disk,
then the Fastest way to defrag any drive, is to simply move all the data from one physical drive, to another.
Now there are some considerations to keep in mind when doing this,
1. First of all the destination drives should not be occupied with any other reading or writing tasks.
2. The destination drives should not be an alternate partition's on the same physical drive.
3. The destination drives should not be overly fragmented or Full (obviously). You must have enough room to actually transfer the files to the new drive after all.
4. A healthy destination drive with healthy DMA settings is preferable.
5. You'll need to Verify file sizes, on files like hidden and system files, maybe archived compressed disk or read only files too.
6. !! I've not tested with copying to/from Compressed disks. !!
7. !! I've not tested with RAID arrays. !!
Here are a few things that do not fundamentally limit the natural "drive copy" defragmentation process:
- 16k block formatting.
- 64k block formatting.
- USB2.0 Drives swapped to/from any other drive type.
- SATA Drives swapped to/from any other drive type.
- EIDE Drives swapped to/from any other drive type.
- FAT32 Drives swapped to/from any other drive type.
- NTFS Drives swapped to/from any other drive type.
Any of these factors listed, will be a concern of speed, but not of capability.
Clearly, moving from a properly supported SATA to a SATA both using 64k blocks will be fastest.
And moving to and fro from a NTFS EIDE drive to a FAT32 EIDE is still possible, just notably slower.
And as for compressed disks, i'm not sure...
But All of the above, will be Faster, and more effective, then Defragging!
It took Defraggler 61 hours on USB2.0 to defrag a 1TB USB drive that was 99% full.
And there were still some fragments left over.
Windows Defrager wouldn't even consider doing the task at all.
However, simply moving chunks of 200gb at a time to physically separate IDE drive then back again,
"defraged" the 1TB drive in roughly 22 hours, with fewer fragged files left over.
Moving the entire drive to another 1TB drive, then back again,
"defraged" the 1TB drive in roughly 14 hours, 0 Fragments.
Clearly this process could be sped up by at least a third, if you don't really have any concerns for shipping data back over to the drive it came from.
If the goal is to defragment files,
Having someplace to re-assemble a fragmented file is a requirement.
and Copy/Delete procedures are the method.
If your destinations are be big blank fields of free-space, then Drive to Drive Movement of files is faster then typical defragging, and Automaticly defrags files while doing so.
DOS itself can handle that, and rather efficiently, that's what it was built for. If you've a nice large lump of free-space to move the data to, then DOS is your best friend for everything involved with Defragging.
It doesn't seem like Defrag software today ever considers the use of alternate drives for free-space, but after these tests, I'm defiantly starting to. I work with large amounts of data every day. Backing up server drives, or even my own Media Monolith at home.
I'll still be using Defraggeler to move large files to the end of the disk now and then.
But for real defragging, I'm going to go with batch files and Drive to Drive move process.
I just need to make sure that things like System files, and hidden files, and read only data, are all properly transferred.
And verify things are the same afterward, I'm pretty sure theirs a /v switch in Xcopy for dos.
Maybe I'm just missing something here, maybe theirs some magical Power user tweaks in the Defraggler.ini file for performance, and using more ram, or other drives for free space swapping, I've no idea really. I'd love to hear input on how to make Defraggler run like a cheetah on crack. So far the only lightning fast Defrag I've had from it, was when defragging my 4GB I-Ram card, which i use for: Temp Internet files, Temp Zip files, Secondlife cashe, Firefox cashe, Anything with the word Cashe, or Swap in it, and Windows Virtual memory. ~And Lions, and Tigers, and Bears ~Oh My! But that is a drive made from actual Ram-Chips. so of course it would be silly fast, and worthless to defrag. (Fun to watch though!)
Pointless Programing Provisions
I worte a Batch file. yay \o/
here it is for all us WindowsXP users:
This file is called: processloop.bat
here is it's contents:
It's a simple, really simple, little loop, to run defraggler on a series of drives.
You run the batch file from a shortcut which you need to make AND edit.
Or if your a geek, you can run it from the command line.
Or command prompt window!
Or even from the task scheduler
To make the required shortcut, right click your desktop and click New>shortcut.
When asked for a location, put in a line that looks pretty darn similar to this:
"X:\path\processloop.bat" "C:\Program Files\Defraggler\df.exe" "c: d: f: h: i: j: o: z:" "/qd"
Where "X:\path\processloop.bat" is the directory path to this batch file.
"C:\Program Files\Defraggler\df.exe" is the path to your command line based Defraggler,
"c: d: f: h: i: j: o: z:" is the drives you want it to defrag.
and "/qd" actually i don't know what the hell "/qd" is, but it's part of Defragglers command line parameters so just do it!
I put this little batch file line together so it would be useless to anyone who has no clue what they are doing.
If you run it without making a proper shortcut, it'll just go, "Huh?" and close. (figuratively speaking.)
To mess anything up with this batch file, you have to have more then enough knowledge to hurt yourself with, And that is my disclaimer.
Oh yeah, and, I've not actually tested this batch line yet with defraggler itself! [I originally built it for activation of my Autohotkey Scripts @_@]
So your welcome to test it for me.
Or don't, whatever floats yer boat! *^p^*
If you've read this far, and you have no idea what i'm talking about,
then you defiantly rubber-neck at car-wrecks!
But you may still free to tell me i'm full of feces.
Most people are!