I've used defraggler for years and its always taken very very long to defragment but at least allows some customisation. My issue is that i not only use it on standard windows but windows server as well and the time it takes is a serious problem amplified by the fact that it cannot defrag multiple drives at the same time. I'm not sure if the issue is with the lack of developers for a multi threaded program or lack of understanding of hardware on the lower level. I've seen much older posts requesting this feature always being denied saying that bandwidth is shared or the controller isnt that fast.
So i am going to put out some facts so that piriform developers can at least figure out that these theoretical problems dont exist.
Drive controllers only share bandwidth for the same channel but a single drive controller has many channels even for IDE controllers. This means that a SATA controller of 6 ports operating in IDE mode will have 6 channels. This is easily proven if you run SSDs in raid 0 as if each SSD maxes out the sata port than at least 2 SSDs being used at the same time achieving double speed shows that the bandwidth isnt shared.
Controller speed only matters for RAID not disk operations. Drive controllers on the other hand only matter for disk operations which is on the disk itself. Many disk drives now boast of having dual or quad core controllers and actually benefit from being bombarded with many commands.
So why cant defraggler defrag multiple drives at the same time and have some sort of multi threading? Not only does will it help for speeding up defragmantation but rather than a slow serial process of defragmenting file by file you get a significant speed up if you have multiple threads working on different files on the same drive at the same time. I know the process is like a puzzle moving pieces of files around the drive but this really should be looked at. At the current pace of defraggler by the time you finished defragmenting all your drives it is time to start again as it takes so long to properly defragment and it would also make the PC unusable for boot time defrag as it would take forever.
Another fact you should know is that CPUs and controllers enjoy multiple threads more even on a single core which is how i can make apps i design for android run on phone CPUs so slow that it still runs smooth when the OS starts being sluggish. Even for a few programs made for fun such as searching through files, making more use of CPU and RAM really speeds things up. If a computer had multiple controllers (for example chipset + onboard integrated PCIe controllers + usb) theres really no reason why you cant run them in parallel as they arent tied down to each other.
So why hasnt defraggler had any multi tasking abilities for years? Has it been the ignorance of the developers? The lack of needed developers? Even if defragmenting 2 partitions at the same time that exist on the same drive, even though its not going to be double the speed it will still be faster than doing it one at a time. Other defragmentation programs have come out being much faster with parallel operations with the same capabilities as defraggler which really isnt helping to get people to consider defraggler pro.