AGENDA 2.0 MEMORY MANAGEMENT
AND
PERFORMANCE ISSUES
This document presents a limited discussion on Agenda's
memory management and how to configure your system
for the best Agenda performance. Please note that
the optimal system for Agenda 2.0 is much different
than the one for Agenda 1.0 or 1.01.
There are three topics discusses. The first, "Optimizing
Your System For Agenda", discusses how Agenda uses
memory and disk space for your databases and how to
optimally configure your system. The second, "The Agenda
Overlay Manager", discusses Agenda's overlay system
and problems to avoid with some expanded memory
managers. The third, "Agenda Resource Management",
briefly discribes Agenda's use of resources.
Agenda manages databases that are significantly larger than available conventional memory. To facilliate this, Agenda contains an advanced memory management system which handles data in a virtual manner.
Agenda interacts with a database by locating pieces of it in four places: the database file, a temporary file, conventional memory and expanded memory. The original database file is used for reading information that has not been modified. A temporary file is used to store modified data. Conventional and optionally expanded memory is used as working storage. Agenda does not directly make use of extended memory. However, software is available by third parties which used extended memory to: simulate expanded memory, act as a disk cache, or provide a RAM drive.
The types of memory and performance tools available directly effect Agenda's performance.
Now, we will address how to optimize your computer's setup for use with Agenda. With few exceptions, you should try setting up your computer as indicated in the outline below.
Provide as much conventional memory to Agenda as possible.
For each TSR that you do not install in memory, Agenda
will have more memory to work with and will work faster.
Additionally, you can reduce the amount of memory required
by DOS if you adjust the FILES, BUFFERS, FCBS, STACKS,and
LASTDRIVE parameters of the CONFIG.SYS file.
See outline number 4.
B. Expanded Memory
If you have hardware based expanded memory, use it.
Do not use expanded memory simulators.
C. Disk caches and RAM drives
Do not install a disk cache or RAM drive.
2. If you have an 80286 based computer.
Provide as much conventional memory to Agenda as possible.
For each TSR that you do not install in memory, Agenda
will have more memory to work with and will work faster.
Additionally, you can reduce the amount of memory required
by DOS if you adjust the FILES, BUFFERS, FCBS, STACKS,and
LASTDRIVE parameters of the CONFIG.SYS file.
See outline number 4.
B. Expanded Memory
If you have hardware based expanded memory, use it.
Do not use expanded memory simulators.
C. Disk caches and RAM drives
Use as much extended memory as possible for a disk cache.
A RAM disk does not help Agenda as much - see outline number 5.
DO NOT use expanded memory for either a disk cache or ram-drive.
3. If you have an 80386 or 80486 computer.
Provide as much conventional memory to Agenda as possible.
For each TSR that you do not install in memory, Agenda
will have more memory to work with and will work faster.
Additionally, you can reduce the amount of memory required
by DOS if you adjust the FILES, BUFFERS, FCBS, STACKS,and
LASTDRIVE parameters of the CONFIG.SYS file.
See outline number 4.
Some programs such as Quarterdeck's QEMM and Qualitas'
386MAX allow you to move TSR's from conventional memory
to higher memory areas. This will give you the benefit
of having the extra conventional memory even while
your TSRs are installed. If you have one of these programs,
or something similar, use it.
B. Expanded Memory
If you have hardware based expanded memory or an 80386 based
expanded memory simulator, use it. Do not use an
8088/8086/80286 based expanded memory simulator.
C. Disk caches and RAM drives
If you can configure your system with expanded memory
as discussed above, do it. You will not need a disk
cache or a RAM disk.
If you can not configure expanded memory as mentioned
above, but you do have extended memory, you should
configure your extended memory as a disk cache.
If you can not configure your system with expanded
memory as mentioned above and you can not setup
a disk cache, you may want to setup RAM disk. This
is a last resort. See outline number 5.
4. For all, Modifying CONFIG.SYS to use less conventional memory
You may get better performance by changing the following
lines in your CONFIG.SYS file. However, you should read
your DOS manual and understand these changes before making
them. Some programs may not work with these settings.
FILES=20 - may need to be larger with some other programs
BUFFERS=20 - a good number
FCBS=0 - FCBS aren't necessary for most programs
STACKS=0,0 - use only with DOS 3.3 or greater
LASTDRIVE=? - replace ? with your last drive letter
This won't make all that much of a difference in most
systems. So, if you don't understand this, don't make
any of these modifications.
5. For all, using a RAM DISK with Agenda
A RAM disk is the simulation of a disk drive using RAM instead
of a physical drive. The advantage is that the RAM disk
is significantly faster than a hard disk. However, it
consumes memory otherwise available to your applications
and it forgets everything when you re-boot.
Only use a RAM disk with Agenda if:
1. you have extended memory available
2. you can not setup expanded memory as mentioned above.
3. you do not have a disk caching program
If you do setup a RAM disk, follow the manufacture's instructions
and specify that the RAM disk use extended memory. After this
is done, you must determine the drive letter of your RAM disk.
What is an overlay? Overlays are pieces of Agenda code
that are not always resident in memory.
Why do we need overlays? After packing all the features
into Agenda, it is too large to fit in conventional
memory. Therefore, we broke it up into pieces. Having
only the necessary parts of the program in memory at
the same time is an effective solution to the problem.
The Agenda overlay manager has two major operating modes.
1. Swapping from disk
2. Storing all overlays in Expanded Memory
If sufficient expanded memory is available to contain all of
Agenda's overlays (368 Kb), then it is used. Otherwise,
overlays are swapped into memory as needed from disk.
Additionally, if expanded memory is used, the overlay manager
detects the expanded memory manager's version ( 3.X or 4.X )
and uses the most efficient functions available to access
the overlays. However, in some EMS 4.X expanded memory
managers, the functions that are supposed to be faster are
significantly slower.
The Agenda 2.0 will chose the EMS 4.0 functions if the
EMS is version 4.X or greater and EMS 3.2 functions otherwise.
Usually, Agenda can set you up in the most efficient manner.
However, to override the overlay manager's use of memory,
there are two switches:
/OVNONE - force disk swapping
/OVEMS3 - force the use of EMS 3.X functions
even if you are running EMS 4.X.
The soon to be released Agenda 2.0 Update will default to
EMS 3.X over EMS 4.X functions. Therefore, the Update
will contain an additional switch:
/OVEMS4 - force the use of EMS 4.X functions
if EMS 4.X is installed.
If you suspect that your expanded memory manager may
be limiting your Agenda performance, I suggest you
try the /OVEMS3. After you receive the update, this
switch will become the default and will no longer
no necessary.
Besides having some of Agenda's code swapped in
with overlays, Agenda also swaps in some of it's data
as resources. An example of a resources would be text
messages and dialog boxes. Unlike overlays, resources
are cached exclusively in conventional memory.
If you have more than enough EMS for Agenda and your
database and you see your hard disk light go on
occasionally, it is probably a resource being loaded
from the hard disk. Don't worry about it.
Relative to other Agenda disk accesses, resources are
infreqently loaded from the hard disk. If you
have a disk cache, you probably won't notice these
accesses at all.