Am 01.09.2011, 22:38 Uhr, schrieb Jonathan M Davis <[email protected]>:
I would point out that regardless of what happens with performance with
synchronous vs asynchronous I/O on a single HDD, it's pretty much a
guarantee
that in the general case asynchronous I/O is going to be faster when
dealing
with different HDDs. So, while we should definitely get hard data, unless
copying asynchronously on a single hard drive is significantly worse than
copying synchronously, then it's pretty much a given that we'd want to
go with
asynchronous I/O by default. If it were found that asynchronous I/O was
significantly better on a single HDD, then that makes the question much
more
interesting, but as long as it's at least close - if not better - than
synchronous I/O on the same HDD, then asynchronous I/O would be the way
to go.
- Jonathan M Davis
I guess you are right. Neither mine nor Andrei's expectations were met.
I/O from multiple threads to a single device is handled remarkably well on
today's systems. While it looked to me and others on the net like a no-go,
we see no major difference in the performance of both approaches with
typical buffer sizes and Phobos routines. If you want to go for the extra
5% in some cases you can go for that 100 MB buffer, OS specific functions
and file usage hints, but that's never good for a standard library routine
that is meant to be short, solid and portable.