Without a shadow of a doubt, O&O.
You can check for more information here:
The Big Windows 7 Defragmenter Test by Christian Hofmann
I spent some time developing a defragmenting script for MyDefrag, so I've studied this issue in some depth. In this test, you'll see older versions of the programs you mentioned; and although there may have been improvements on both sides, I can vouch for O&O Defrag, both then and now, whereas I've never been impressed by Defraggler.
If you analyze the test carefully, you'll see that I designed my own MyDefrag script (which also took part in the test) to be both effective in read and write speeds, because that's the balance you'll want. Read speed is closely related to where and in which order relevant data is placed on the disk. Write speed does have to do with the number of fragments that are created/left by the defragmenter, but it's actually more complicated than that. Defraggler moved a lot less data than the winners, so it was a lot faster in finishing the first job (less than 5 minutes versus over one and a half hour for O&O); but it also achieved a performance loss when compared to even the built-in Windows defragmenter. And it's also quite important to note that after moving all this data to set a performance-increasing order, O&O will only have to maintain the order it set, meaning the next time you defragment, it will finish the job much faster than the initial run.
So, to sum it up without getting way too technical, I recommend O&O. I stopped developing my scripts mainly because MyDefrag stopped being developed, but also because O&O Defrag is very good at what it does, and although it offers less configuration options than MyDefrag did, the ones it does offer are more than enough to achieve optimal drive performance, plus it can do things no other competitor can. And if you don't want to touch any settings, the default ones offered by O&O Defrag are more than enough to satisfy your needs.