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