I like o&o defrag the most.
Note that most defragmenting tools (including the above mentioned o&o defrag) work best if there's at least 10-15% free disk space on the drive.
With some really full drives, I even had to resort to making a ram drive of around 6-8 GB, moving 8 GB of stuff from the hard drive to ram to make empty space on the drive and when the defrag was done, moved back those 8 GB onto the drive. It was worth the speed increase.
Other tricks include resetting the page file in windows, or disabling hybernation/sleep (because that can make a big hidden file on the boot partition) or running disk cleanup in administrator mode to empty the crap before defragmenting
o&o defrag also allows you to specify regions on the drive and to put some file types in specific areas of the drive... this can accelerate the defragmentation process.
For example, if you have big MP4 and MKV video files, you can configure o&o defrag to position them sequentially at the end of the drive - this is because you mostly watch movies at real time speed, so even if the files are at the end of a mechanical drive where the transfer speeds are lowest, you still get 50-100 MB/s of transfer speed and the bitrates of movies are usually in the <10 MB/s range.
You can then put mp3, aac, opus, flac before the video files ... and big game files (like 40-50 GB files from games) in the center of the drive... you're left with binaries (applications) at the start of the drive, for highest access times.
Knowing all of the above, a defragmenting tool can quickly sort through all the files extract those extensions calculate where those files will eventually end up and speed up the process.