Mail Archives: djgpp/1994/11/02/12:00:41
> A colleague of mine who is also using DJGPP has commented that the disk I/O
> (low level) for DJGPP objects is substantially slower than native
> Windows or DOS I/O. The comment is that e.g. Zortech C/C++ can produce
> binaries that give block reads and writes of large blocks at up to
> 400kbs-1 while despite the chosen blocksize DJGPP low level reads and
> writes reach a ceiling at around 30kbs-1. Obviously there is some
DJGPP uses a 4K transfer buffer between the protected-mode program
and real-mode DOS services provided by go32. As long as this buffer
is used, doing I/O with blocks larger than 4K won't help. If the
program you are talking about does nothing much other than reading
or writing large files (and, with the exception of wc, I have yet
to see such a program which does some non-trivial job), then currently
there is no other way (AFAIK) except allocating your own, larger,
transfer buffer and doing low-level I/O yourself. All of the above
can be accomplished with the DPMI services that go32 (or another DPMI
server) provides to your protected-mode programs.
- Raw text -