www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1994/11/02/12:00:41

To: Sean Smith <S DOT D DOT Smith AT ecs DOT soton DOT ac DOT uk>
Cc: djgpp AT sun DOT soe DOT clarkson DOT edu
Subject: Re: Disk I/O rates with DJGPP
Date: Wed, 02 Nov 94 14:37:54 +0200
From: "Eli Zaretskii" <eliz AT is DOT elta DOT co DOT il>

> 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 -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019