[comp.sys.ibm.pc] Disk Cache Benchmark

kdq@demott.COM (Kevin D. Quitt) (07/13/90)

    I tested several disk caches, all but SMARTDRV are the versions
currently available from SIMTEL.  Rather than running a "cache test"
program, I used an automated make of our machine control library act
as the benchmark.

    The caches tested are:

    SMARTDRV	(Bundled with Microsoft products)
    DCACHE
    DISCACHE
    EMMCACHE
    QC420
    SHAREPCK	(Shareware version of PCKwik)

    There are 30 include files in our include directory (68K),
besides the 32 (130K) in Microsoft's.  The sources are in two
tertiary directories (e.g. w:\foo\bar\bas and w:\foo\bar\baz) where
w: is a substituted secondary directory.

    The disk drive is 60MB(RLL, 28ms avg. seek) partitioned into
drives C and D.  The compiler, standard include files and standard
libraries are on drive C, while the library includes, sources, and
the library itself are on drive D. There are 11 sources files in one
directory (106K total) and 3 sources files in the other (16K).  The
resulting object modules are 90K, and the library is 82K.

    The computer is a Twinhead 386/25 with 8MB of 0 wait RAM.  386MAX
is used to create expanded RAM for the purposes of cache and other
program usage.


    Conditions of the test:

    The disk drive was optimized to guarantee file contiguity.  The
system was configured (via config.sys) and rebooted.  The default
drive and directory were set, and the make was started using the
following batch file:

send %1 start at $t$_>>time.doc			(record the time)
call make
send %1 ended at $t$_>>time.doc			(record the time)
search . /name *.obj /rm /s			(remove the .obj files)

    Caches that didn't require starting from within config.sys were
started by hand immediately previous to the execution of the
benchmark.  The cache size was specified as 2048K of expanded memory.
(To those who say that dcache has 64K max cache, I say RTFM).  QC420
would not accept (apparently) a 2048K cache, and insisted on using
1800K.


    "Buffers" in config.sys is set to 4.


    Results:

    QC420 was disqualified when I started getting "FAT corrupted"
messages during the benchmark.

    Discache was disqualified because according to its documentation
it cannot handle partitioned drives.

    Sharepck was disqualified because it occupies main RAM, leaving
only 360K available.  *None* of my major applications will run in
that little RAM.


    Cache	Time		Invocation

    (none)	5:55.48
    dcache	3:48.38		dcache /On /M2048 /E /H0
    emmcache	3:37.73		emc110 128 128
    smartdrv	2:43.02		device=c:\smartdrv.sys 2048 /a


    Notes:

    QC420 detected all SUBST'd drives as legitimate drives to be
cached, as well as caching the floppy drives.  It would not accept a
command to use 2048K of cache, maxing out at 1800K.  When I ^C'd to
stop the benchmark and avoid disk damage, a soft reboot indicated
that the timer was not working.  A hard reset was required.

    Sharepck spent most of its time touting its commercial versions.
I found this to be very annoying.


    All three caches were loaded into High DOS memory via 386LOAD,
and functioned normally.

    All else being equal, I would prefer dcache over emmcache, because
of its ease of use, and the fact that it can be turned off and removed
from memory.  The docs are well written.

    I have undoubtedly left off some critical piece of information.
If it's of interest to you, please write to me.
-- 
 _
Kevin D. Quitt         demott!kdq   kdq@demott.com
DeMott Electronics Co. 14707 Keswick St.   Van Nuys, CA 91405-1266
VOICE (818) 988-4975   FAX (818) 997-1190  MODEM (818) 997-4496 PEP last

                96.37% of all statistics are made up.