Marcin 'Qrczak' Kowalczyk <qrczak_at_knm.org.pl> writes:
> Michael Sperber <sperber_at_informatik.uni-tuebingen.de> writes:
>
>> c) As the proposed design implies buffering at some level, and the
>> transfer of binary data to arbitrary bytes objects, it is at
>> least quite difficult to implement zero-copy I/O, facilities for
>> which are offered by many modern operating systems.
>
> I think zero-copy I/O, as offered by the OS, supports only binary I/O
> of whole memory-page mappings in buffers aligned to whole pages. This
> is hard to interface to stream-based textual I/O.
Exactly. That's why Primitive I/O differs from Port I/O: It gives you
the opportunity to align buffers, and lock them in memory, and it
gives you only binary I/O. I agree that this isn't exactly the most
important requirement, but it's one aspect of Primitive I/O that isn't
redundant with Port I/O.
> It's impossible to implement efficiently for transcoders implemented
> externally.
Sure.
> I've made a test.
You'll find I did a similar test here with similar results:
http://www.r6rs.org/r6rs-editors/2006-July/001522.html
What this means is that considerable efficiency is lost for
transcoders implemented externally. It doesn't say anything about
transcoders implemented internally. If being able to use externally
implemented transcoders is a requirement, then the conclusion is
clear, and you should ignore my argument. I just haven't seen that
formulated.
--
Cheers =8-} Mike
Friede, V?lkerverst?ndigung und ?berhaupt blabla
Received on Sun Nov 26 2006 - 04:01:31 UTC