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:


2) Disk cache

3) Optimizing your hard disk

4) Permanent swap file


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


Copyright © 2022-2023 by Michael Maardt. You are on knowware.dkContact