Miscellaneous
Optimization tips
You will by now have realized that there is no general way to optimise a PC.
We all use our computers in individual ways to suit our personal requirements.
My advice is: try out some of the idea suggested in this guide ' experiment a
little! You will learn something in the process and perhaps be forced to think
about things you haven't needed to think about before ' and that does no harm.
Generally, it is the case that the less RAM you have, the more important your
use of memory becomes. I realize that I have given both minor and major tips, so
here are the most important ones:
1) DOS=HIGH
2) Disk cache
3) Optimizing your hard disk
4) Permanent swap file
2 MB RAM
With a 286 and an upper memory manager installed, or a 386SX/SL (on which
EMM386 can create UMBs and DOS can manage them), it is important to install as
much as possible in UMBs. If you have an add-on EMS card with RAM, all
you need to do is use that EMS RAM with the driver supplied with the card. Read
the manual that came with it and/or software for further instructions.
You must load DOS=HIGH and also if possible DOS=UMB. It all depends on how
much XMS memory you "borrow" for use as UMB. If, for instance, you have about
800 KB RAM left, you have to decide how you will use it. If you only run DOS
programs, then use a fair amount (maybe 512 KB) as a disk cache, e.g. SMARTDRV.
The cache size (the 512 KB just suggested) is taken from extended (or
expanded) memory and does not affect your conventional memory. If you don't use
programs like Windows, you can use all the free extended memory for your disk
cache.
If you use Windows, then you have to strike a balance between the size
(minimum and maximum values) of SMARTDRV and the free extended memory available
to Windows. I haven't tried, but 400 KB each can't be far off the mark ' you may
want to experiment.
4 MB
You will certainly have at least a 386DX. The text should help you a lot. As
I have indicated, SMARTDRV will assume a default value of 1024 KB cache under
DOS and 512 KB cache under Windows. These are OK for most users. If you run
Windows, try reserving a larger cache for Windows, i.e. try writing the
following in autoexec.bat:
smartdrv 1024 768 or
smartdrv 1024 1024
If you usually only run one or two less memory demanding programs, then you
might well find that they run faster with a cache larger than 512 KB.
6-8 MB
It is not easy to give general advice on the size of the disk cache or the
possible use of a ramdisk. It really depends upon how many programs you usually
have open in a Windows session, and also which programs you use. It would
be too easy for me to say you should experiment. Just to give you some idea of
my own setup: I have 8 MB and usually have Word for Windows, a database and
maybe NC and/or Winfax open. I get the fastest results with SMARTDRV set to 2048
2048, which is the default for 8 MB RAM. In other words, I don't need to state
any parameters for SMARTDRV.
With 8 MB RAM, I get more speed during a Windows session with several
programs open, and only a minimum of data needs to be sent to the permanent swap
file.
Using upper memory
(A) If you want to place as many programs as possible in upper memory, it is
important to create a large area with consecutive upper memory blocks (UMB). Do
not include more than you need in any I=... line in your CONFIG.SYS.
You should load first those programs that take up the most space, and then
smaller and smaller programs. The first program loaded is placed in the largest
vacant UMB, the next in the largest remaining free UMB, and so on. This
process leaves gaps of unused memory.
By using the MEM/C/P command, you can see fairly accurately how much each
program uses. The command MEM/D/P also provides useful information. You may have
to change the order of your devicehigh and loadhigh commands.
Common problem: You have found out how much room a program will use, and
apparently there is room in upper memory for it ' but it will not load there.
Cause: Programs are not loaded directly into upper memory. First, they
are loaded into conventional memory, then a check is made for space in upper
memory, and only if there is space will the program be loaded there.
However, during this shunting procedure, programs that are preparing to move to
upper memory require more space than they do after they have moved. Afterwards,
the room they no longer need in upper memory is freed up again.
In MEMMAKER.STS, MaxSize gives the number of bytes the program needs
to come "up." If you cannot fit a program in upper memory, then temporarily
unload some others, run MEMMAKER and then look in MEMMAKER.STS.
In order to load as many programs as possible into upper memory, the most
important thing is the order of devicehigh and LH commands. MEMMAKER
cannot
help with the loading order. You must decide that.
If you use Windows and do not have any network drivers installed, make sure
you have at least 8 K left in upper memory for translation buffers after
loading all your programs. If you have network drivers installed, this figure
must be 24 K.
Windows needs what are called translation buffers when running in enhanced
mode, and they fill either 8 or 24 KB. Translation buffers are used to transfer
data between real and protected mode - DOS runs in real mode and Windows runs in
protected mode, and when a DOS program runs in a DOS window in enhanced mode,
then this movement between states is occurring all the time. These buffers are
then of importance as temporary storage space for vital information or data.
Windows: make sure that you use your startup files only to load those
programs (device drivers, TSR programs, etc.) that all your programs
need. If you only need a TSR program while you use a certain DOS program, the
most efficient policy is to write a batch file for that program that loads the
TSR before you load the DOS program. When you close the program, the TSR
is removed from memory.
Looking in memory
(A) If you have the program MSD.EXE (from Windows 3.1 or DOS 6), you can run
it in DOS and type M to see how upper memory is being used. The grey area is
reserved for system use. F=Free, U=Used. As already mentioned, the PS/2 has its
motherboard BIOS ROM in the area E000-EFFF, so this area is not included
in the default setting of DOS 5's EMM386.EXE.
However, clone PCs don't normally need this area for system use; therefore,
it will be wasted if it is not made available for upper memory. This is
only important if you need to use part of this 64 KB in upper memory. The
parameter I=E000-EFFF includes this area. In this way, you can "gain" 64 KB in
upper memory, but check first with MSD.EXE that the area is free (shown by Fs).
While in MSD, select Utilities (Alt+U) and Memory Block Display. You can look
at the first MB, with the possible exception of pages E and F, i.e. from E000
onwards. While Windows or another program is loaded, you can switch to MSD and
find out where the different programs are located in memory. Notice, however,
that (as the screen message says) information may not be totally accurate as you
also have Windows running. Despite this reservation, it is useful to check when
you want to see if a change has worked.
You can find out a lot about your PC by choosing Alt,
File, Print,
File
and Enter. You can get roughly the same result by
typing
C:\>MSD/P sysinfo.doc
This filename is my suggestion but, as with all DOS commands, you can request
info about the different possibilities by typing
C:\>MSD/?
|