Windows 7's built-in defragger tends to use lots of CPU usage during the "Consolidation/Consolidated" passes, and it cannot take advantage of more than 1 CPU (or core). For instance, on my 3GHZ Core 2 Duo laptop, 1 core is constantly at 100% utilization from the svchost.exe that is the Disk Defragmenter engine. It takes a few hours to get past each Consolidated stage each time. The defragmentation stages are a different story, they are fast and I/O bound, not CPU bound.
Defraggler is even worse with CPU usage, and it can take full advantage of a dual core/dual CPU setup, but still be very CPU bound.
It's like you need an Intel Ivybridge or AMD Piledriver chipset just to run defrag and keep it I/O bound as it should!