bradley.grigor@canremote.uucp (BRADLEY GRIGOR) (06/24/90)
dhinds@portia.Stanford.EDU (David Hinds) writes in reply to my
earlier posting re: slowdown in Virtual 8086 mode...
dD> Hmmm... The slowdown doesn't seem to be very severe with Desqview
dD>running in virtual-86 mode. Does Windows 3.0 add a lot of extra
dD>overhead? When I first installed Desqview-386, I tried running a
dD>bunch of benchmarks on an empty system (with no QEMM installed)
dD>versus running them in a DV window. I don't remember the numbers,
dD>but there were no dramatic slowdowns using DV, even on video
dD>performance....
My only measured tests involve a small Turbo Pascal program,
listed below. I just now ran a series of tests with this program
that demonstrate (to me at least) how bad Virtual 8086 mode can
be with interrupt intensive programs.
The tests show that DESQview runs the program about 33% slower
than real mode, when not doing direct screen writes. Here are
all the results, measured in system clock ticks, averaged over
several runs for each case, with relative speed indexed to the
bare bones system:
=========================================
DIRECT SCREEN NOT DIRECT
WRITES SCREEN WRITES
ticks speed ticks speed
-----------------------------------------
Bare bones 90 1.00 210 1.00
system
-----------------------------------------
QEMM-386 95 0.95 317 0.66
active
-----------------------------------------
DESQVIEW 95 0.95 323 0.65
under QEMM
-----------------------------------------
Windows 3.0 95 0.95 399 0.53
=========================================
* Bare bones system: No memory manager. Real mode. Program run
from DOS COMMAND prompt.
* QEMM-386 active: QEMM-386 loaded and high RAM allocated with
various things loaded high. Virtual 8086 mode. Program run
from DOS COMMAND prompt.
* DESQview under QEMM: QEMM-386 loaded and high RAM allocated with
various things loaded high. Virtual 8086 mode. Program run
from DOS COMMAND prompt in a "full screen" window (i.e. Big
DOS).
* Windows 3.0: HIMEM.SYS loaded as per Windows installation.
Enhanced 386 mode (== Virtual 8086 mode). Program run from DOS
COMMAND prompt in a "maximized" window (i.e. DOS PROMPT from
the Program Manager).
* DIRECT SCREEN WRITES: Program compiled using "Crt" unit that
bypasses standard I/O. Very few DOS or BIOS interrupts.
* NOT DIRECT SCREEN WRITES: Program compiled without the "CRT"
unit, outputting to standard output file. Lots of DOS and
BIOS interrupts.
----------------------------------cut here-----------------------------
program ScreenTest;
uses Crt;
var t0,t1: longint;
var Ticks: longint absolute $0040:$006C;
var k: integer;
procedure ClearScr;
var k: integer;
begin for k:=1 to 25 do writeln end;
procedure DumpLine(j: integer);
var k: integer;
begin for k:=1 to 80 do Write(Chr(Ord('A')+j)) end;
procedure DumpPage;
var k: integer;
begin for k:=1 to 24 do DumpLine(k) end;
begin
ClearScr;
t0:=Ticks;
for k:=1 to 20 do DumpPage;
t1:=Ticks;
writeln(t1-t0,' clock ticks')
end.
----------------------------------cut here-----------------------------
...bag bradley.grigor@canremote.uucp Newmarket, Ontario, Canada
---