hedwards: Oh, never mind then, I didn't realize you were talking about SSD drives. Those don't benefit much from defragging for reading, although they do for writing.
SSDs are kind of odd when it comes to defragging, it's not really something that one ought to do very often with them.
Miaghstir: Defragging SSDs decreases their lifespan considerably, each cell can be written to only a limited number of times before they're dead. The controller chip makes sure each cell is written to roughly equally (which makes the physical data location inherently fragged), but when defragging you write to all of them as a buttload of data is moved around.
This concern is lessened with single-level cell SSDs as they store only a single bit per cell, but those are also a hell of a lot more expensive than the more common multi-level cell SSDs hat store multiple bits per cell (on defragmentation each bit is written at least once, and if the SSD uses multi-level cells, the cell is written to multiple times, decreasing the cell's life-span by that many writes).
... In short: Don't defrag SSDs.
True, but there are other more important reasons. SSDs are not organized the same as mechanical disks, and writes to SSDs don't work the same way as mechanical disks.
SSDs have an erase-write cycle. If a page (nominally 4K) to be written is not known to be erased, a whole block of pages (512K) has to be erased first. Thus SSDs have to have ready access to contiguous
erased space. If erased space is fragmented, SSD write performance degrades, sometimes catastrophically.
Typical filesystems and defragmenters don't know about erasing. They're designed to assume that when a block has been mapped free, that it can be written to at any time. So look what a defragmenter does: it moves files from fragmented space (and marks the fragments free) to contiguous space. But to an SSD, all it has done is decrease writeable space (by not erasing the fragments, and consuming previously contiguous erased space).
SSDs and SSD-aware OS and filesystems already solve this problem in a manner that eliminates the need for defragmenters altogether. They have the TRIM command and built-in garbage collection. In effect, they are already defragmenting in real time.
So I'll strengthen your conclusion. Don't defragment SSDs, because doing so is at cross purposes with the SSD's own effort to maintain efficient operation. Especially, don't defragment an SSD that takes a lot of random writes, like a Windows system volume.
OS and filesystems that know about and use TRIM include Windows 7 and Server 2008R2, Linux (at least 2.6.33, with Ext4 or Btrfs), FreeBSD (8.2, with UFS), Solaris, DragonFly, and Mac OS X (Snow Leopard, unofficially; Lion, officially).