www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1994/11/07/17:56:11

Date: Mon, 07 Nov 94 16:50:05 GMT
From: Martin AT snsystems DOT co DOT uk (Martin Day)
Reply-To: Martin AT snsystems DOT co DOT uk
To: eliz AT is DOT elta DOT co DOT il
Cc: djgpp AT sun DOT soe DOT clarkson DOT edu
Subject: Re: Disk I/O rates with DJGPP
Lines: 23

In message <9411071506 DOT AA00313 AT is DOT elta DOT co DOT il> Eli Zaretskii writes:
> > My real question here is why does go32 have a 30% time overhead on a
> > disk read when X32 only has a 5% overhead (reading in 4k byte block
> > sizes in both cases) ?  Is the routine to copy data in/out of the
> > real mode memory buffer slow or (more likely) is the transition
> > to/from virtual 8086 mode slow ?
> 
> Probably because in X32, even if you specify a 4k block, the extender
> still reads larger chunks and only passes data to you in 4k bytes.
> I don't really know the fine details of mode switch, but it could also
> be a culprit, although I would doubt if any reasonable mode switch code
> would take so long as to explain the above difference.

A quick test by hooking a monitor program into the INT21 vector shows
that X32 reads data from DOS in 16K blocks and DOS4G reads 8K at
time.  GO32 of course reads 4K. As was the "native" DOS call.

The size of this block seems to be inversely proportional to the
overhead imposed.  Maybe a future version of GO32 could make this
more easily configurable.

-- 
Martin                                         martin AT snsystems DOT co DOT uk

- Raw text -


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