home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-385-Vol-1of3.iso
/
d
/
dv_vidbm.zip
/
README.DOC
< prev
next >
Wrap
Text File
|
1993-01-11
|
6KB
|
118 lines
We spent some time in our Interrupt Management lecture at the Quartrdeck API
Conference discussing DV's overhead, including its video overhead, and we also
gave out some ACCURATE benchmark programs to measure it. We have attached four
programs which can be run inside and outside of DV.
They are as follows:
TIMEWTTY - Times writing characters to the screen using interrupt 10h,
function 0Eh, without performing any scrolling operations. This
is important since all COMMAND.COM writes make this call.
TIMESCRO - Times scrolling the screen by writing a carriage return /
linefeed using interrupt 10h, function 0Eh. This is important
since this is how COMMAND.COM scrolls the screen (i.e. during
directory operations).
TIMEDIRE - Times writing directly to the screen. This is important since
almost all text-based DOS programs write to the screen this way.
TIMELOOP - Times executing a tight instruction loop. This is important
since it emulates much how processor-intensive work is getting
done.
Each of these programs takes a command line parameter of the number of seconds
to perform the test. Each program then prints out how much work it got done
in the given time. Thus, a high number is good. We ran these four programs
under each of four environments: (1) in DOS; (2) in a Maximized MS-DOS
Prompt window in Windows 3.1 Enhanced Mode; (3) in a Zoomed Big DOS window in
DV Classic 2.42; (4) in a Zoomed DOS Window in DV/X 1.02. Here are the
results:
DOS W3/3 DV2.42 DV/X
TIMEWTTY 183 199 211 154
TIMESCRO 3554 1977 15328 14409
TIMEDIRE 9908 34081 39250 26439
TIMELOOP 722 682 711 677
The interesting things to note:
(1) DESQview is faster than DOS and W3/3 at all screen writes, including being
about four times as fast as DOS at scrolling the screen through the BIOS
and writing directly to the screen. Note that W3/3 is much slower than
DOS and nearly 8 times as slow as DV at scrolling the screen. This is
because they perform an entire shadow update of the window on each scroll
in order to get a smoother-looking scroll.
(2) DESQview has 1.5% multi-tasking overhead for running one task on my
system, while W3/3 has 5.5% overhead and DV/X has 6.2% overhead
(3) DV, DV/X and W3/3 all use memory mapping techniques and shadowing
techniques to perform their virtualization magic, and this causes screen
writes to speed up greatly due mostly to the fact that video memory speed
is much, much slower than RAM speed (look at MFT F M to verify this).
If you want to compare speed in DV in various virtualization states, you can
see the following results:
DOS Virtualize Direct Intercepted
TIMEWTTY 183 211 131 213
TIMESCRO 3554 15328 3464 8470
TIMEDIRE 9908 39250 9851 39377
TIMELOOP 722 711 718 717 (712 if shadowing)
Interesting things to note:
(1) As expected, writing in a Direct window is a bit slower than DOS since DV
has a bit of overhead and then passes it along to DOS without enhancing
the performance in any way.
(2) The TIMEDIRE test shadows when run in an Intercepted window, so the speed
of writing into a shadow buffer is equivalent to writing into a
virtualized window.
(3) DV's processor overhead is smaller for direct and intercepted windows than
for virtualized and shadowed windows. This is because DV does not need to
keep checking for screen updates (shadowing) for such windows. On my
machine nearly 2/3 of DV's overhead for running a single window is due to
shadowing time.
I have put these benchmarks along with 3 others in:
SUPPORT/SYS:\DATA\SUPPORT\LARRY\MYBENCH
The other three benchmarks are:
TIMEINTS - Times reflecting interrupts. Note that DV in all its versions
is much, much faster than W3/3!
TIMEPAUS - This one only works in DV. It is designed to measure the time
it takes DV to perform a task switch. The way you time this is
to open two DOS windows. In the first DOS window, run TIMEPAUS
for a really long time (i.e. 3600 seconds). Then switch to your
other window and run it for 10 seconds. It will say how many
task switches were performed for the second window in 10
seconds. Since the first window is also getting task switched,
really twice as many switches occured during the time. So,
multiply the result by 2 and divide by 10 and that's the time it
takes to perform a task switch. This number shrinks for
non-shadowed windows, as you would expect.
TIMEIRQ - This one only works in DV. First you must choose some IRQ that
is not being used on your system (7 is usually a good one).
Then you open a DV window and type TIMEIRQ <irq#>. This will
cause DV to give all interrupts coming in on that IRQ to that
window. Next, open a second window and type:
TIMEIRQ <same-irq#> 10
The program will prints out the number of interrupts which got
sent to the other window in 10 seconds. This gives a
reasonable estimate of the maximum baud rate at which an ideal
communications program could run in DV.
********************************************************************
* This technical note and programs ziped with it may be copied and *
* distributed freely as long as it is distributed in its entirety *
* and it is not distributed for profit. *
* Copyright (C) 1993 by Quarterdeck Office Systems *
************************* E N D O F F I L E ********************