Am 31.08.2011, 22:53 Uhr, schrieb Johannes Pfau <[email protected]>:
Andrei Alexandrescu wrote:
This will happen all the more if you have multiple threads.
You clearly have a good expertise on OS, I/O, and related matters, and
I am honoured by your presence and by the value you're adding to this
group. However, in this particular argument you're only firing blanks.
Are you sure you have a case?
Andrei
So why don't we benchmark this?
Here's a first, naive attempt:
https://gist.github.com/1184671
There's not much to do for the sync implementation, but the async one
should maybe keep a pool of buffers and reuse those. However, the async
implementation was already ~10% faster in simple tests (copying a 700mb
ubuntu .iso; source and target on the same harddisk). I wouldn't have
expected this, but it seems the async copy is actually be faster.
I cannot verify your numbers at all. I drop the caches before every run
and make two runs with --async first and --sync second and two runs the
other way round. On a 1GB file the async version adds an average of 0.22%.
With a larger buffer size that margin increases even more. Did you
actually clear the disk cache before runs and no other application used
the disk much? Browsers tend to save the session in intervals. At the
bottom of your heart you know that your numbers must be wrong. :p Verify
it once more!