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.