







Performance Tuning OS/2 Warp




























Ron Cadima
ISV Development Assistance
IBM
Boca Raton, FL



About This Document:

This paper makes the assumption that the reader is familiar with OS/2 Warp and many 
of the technical terms in use by the computer industry. It presents general and specific 
tuning information for a computer that will have or has had OS/2 Warp installed. It  
starts by taking the reader through some general system setup considerations with 
regard to processor type, disk type and the amount of memory in your system. Next it 
goes into detail with respect to CONFIG.SYS statements that should never be 
modified and those that can be modified to help improve system performance. System 
Settings and Desktop Settings are covered next. Finally Appendix A presents 
measurement information about how much memory is used for different functions and 
products.

Some terms and phrases that will be used in this document are as follows:

Warp     - OS/2 Warp Version 3.0 both the version that is used with Windows already 
        installed on your machine and the version that includes the WIN-OS/2 support.
OS/2      - Refers to the OS/2 Warp Version 3.0 product and its capabilities.   
System - a generic term that refers to computer with an operating system and    
        application programs installed on it.
Memory - The amount of physical memory or RAM that is installed in the computer.
         or used by a particular function.
FAT       - File Access Table file system.
HPFS    - High Performance File System
Desktop- Sometimes referred to as the Workplace, this means the Workplace Shell 
        feature of OS/2. The Workplace Shell is the part of OS/2 which controls how you 
        OS/2 systems appears on your computers video screen.

 
Trademarks:
IBM Corporation:                                  
OS/2 Warp Version 3.0           
DB/2                    
LAN Server 4.0                  
Personal Communications/3270
BonusPak

Microsoft Corporation:
Windows 3.1                     Excel
Windows 3.11                    Word For Windows
Windows for Workgroups 3.11


General Setup Considerations:

There are some basic considerations that need to be made about the computer that 
you will  install Warp on. It breaks down into 3 elements: processor , memory and disk.

In most cases the processor that you have in your system has a minimal impact on 
performance compared to the amount of memory and the speed of the disk. The only 
real considerations to make with respect to processor are its age. You want to avoid 
386 and 386SX processors. You want processors that can be upgraded and those 
that support instruction caching sometimes referred to as Level 1 or Level 2 cache.  
There really is no optimum level instruction cache size. More instruction cache is 
usually better than less. The only real determinant should be costs.

Memory, also called RAM,  is a different story. Without enough memory your system 
will run slow.  If you cannot afford to buy memory for your system, then you must 
manage the things you install. You only want to install fonts, device drivers, objects 
and applications that you will actually use. You may think that just because you have 
not started an installed application, it is not using any memory. This is not always the 
case. Many newer OS/2 applications will register classes and objects with the 
Workplace Shell or add items into path statements, set statements and the like. Many 
of these things will cause memory to be used even when the program is not running. 
In some cases, the program will require special device drivers be installed whichl also 
use up memory.

Other things that affect memory usage are disk caches, CD-ROM caches, multimedia 
support and buffers. The important factor to consider for the disk cache, is that it is 
designed for general use. Since most systems are not general use, the disk cache 
should be tuned to the specific system environment to optimize memory usage. We 
will discuss the disk cache considerations in more detail when we look at the file 
system options.

Probably the most important piece of hardware on your system is the hard disk.  It will 
affect the performance of starting your system, loading applications, the speed of 
applications,  and the general performance of your system.

It is best to have a disk subsystem which uses a bus-mastering type of adapter. Many 
SCSI devices and some of the PCI devices have this capability. These types of 
devices allow for multiple requests to be sent to the disk device to be processed rather 
than just one command or function at a time. They also allow what is called scatter / 
gather capabilities. Without bus mastering, data that is transferred between the 
computer's memory and the disk must be in contiguous memory, one byte after the 
other. With bus mastering, the data does not have to be contiguous and does not have 
to be on a 64K byte boundary. Bus-mastering relieves the system of a lot of overhead 
and therefore performs faster in actual usage , although  you will see little or no 
difference when running benchmarks..

When the memory in your system is overcommitted, that is, the operating system and 
the applications you are running need more memory than is physically available in 
your computer, Warp will page, or swap, code and data that has not been accessed 
for a while to the disk in order to make room for the needed code and data. In this 
instance, the disk is the single most important factor in your system with respect to 
performance.

Other considerations with regard to the disk is whether or not it has its own caching. If 
it does and your applications perform mainly sequential disk access, then you can 
reduce the size of your software disk cache.  Hardware disk cache will have little or no 
effect when the programs perform random disk operations. The hardware cache will 
improve the performance of starting the Warp operating system and the applications.


File Systems:  

OS/2 supports two file systems for use on your hard disks: FAT and HPFS. No matter 
which file system is used, there are some basic considerations. You need to install the 
file system depending on which operating systems will access the data. If you plan to 
boot  a DOS or Windows system natively, then any data that will be accessed must 
exist on a FAT disk partition. If you will only be running DOS and Windows 
applications in a Warp VDM ( Virtual DOS Machine ), then the file system can be 
HPFS or FAT.  Also, when accessing a file on a server, and the server file system is 
HPFS, you do not need to install HPFS on your local client machine. HPFS only needs 
to be installed on a computer when a partition on a local hard disk is formatted as 
HPFS.

The amount of memory you have in your machine should affect the decision about 
which file system to use. When HPFS is installed, it requires a minimum 200 to 250k 
of working set, plus the space allocated for its cache. This is a large amount of 
memory and is the main reason why FAT is used when Warp is installed on a  system 
that contains 4 MB of physical memory..

Regardless of which file system you select, you need to plan for future requirements: 
How will maintenance and fixes be applied? Where will applications be installed? 
Where will data reside? etc. I recommend that when you set up your hard disk, you 
create a minimum of 3 partitions. One will be for the operating system(s), one for your 
applications and static data files, and another for dynamic data files and temporary 
files.  Decide whether you want to use Boot Manager or Dual Boot. If you select Dual 
Boot, then OS/2 must be installed with the FAT file system.     

For temporary files, it is better to have them preallocated and reuse them rather than 
create and destroy them every time. Extending a file can be almost twice as slow as 
just writing to a file. Also, if you reuse files, it will definitely reduce the fragmentation in 
your disk directories.

Now let's look at some specifics with regards to the two file systems.

FAT: 

FAT is best suited for disk partitions that are 80 MB or less in size or that have a 
limited number of files installed. Usually, 256 files is a good target, with up to 500 
acceptable.  The number of files become important because FAT files are allocated 
based on a sector size. The sector size is determined by the size of the disk partition 
and can be 2K, 4K, 8K or higher. Since most file sizes are not an exact multiple of the 
sector size, disk space gets wasted. For example, installing DOS, Windows and Warp 
on a 100MB partition resulted in 2.2 MB of disk space being wasted.

Also, when Warp is allocating space for a file in a FAT partition, it will look for the 
largest available free space area to write the data or create the file. If lots of files were 
created and deleted, or expanded, these free space areas become smaller and 
smaller and are spread out over the disk. This is reffered to as fragmentation. When a 
file is stored in many areas on the disk, it takes longer to read that data simply 
because the disk head has to do more seeking. 

The FAT file system disk cache is defined by the DISKCACHE= statement in the 
CONFIG.SYS file. New in Warp is the "D" designation for the size of the disk cache. 
Warp will allocate space for the disk cache based on the amount of physical memory 
that is installed in the system. If more than 8 MB is installed, 10% of the physical 
memory will be used for the disk cache up to a maximum of 14.4 MB. Based on what 
applications and support you install in your system, this may be too high and cause 
you to overcommit your memory. If there is not a lot of disk work done on your system, 
or you are using DB/2 or HPFS, then you should reduce the size of your disk cache. A 
number between 128 and 256K is sufficient for most systems. On a 4 MB system, we 
set the disk cache to 48K.

In conjunction with the cache size, you should also set the cache threshold. This 
determines which records being written or read will be placed in the cache. The default 
is 1 sector. If your cache size is 128K or larger, increase this value to at least 16 and 
preferably 32. More detail about the DISKCACHE= statement will be given in the 
section on CONFIG.SYS.


Some additional items for improving performance using FAT are:

* Group files by usage, the most used files first, and least used files last.
* Group files based on whether they are static or dynamic. All dynamic and temporary 
        files should be placed in a separate partition. 
* If possible, place all temporary files in a single directory.
* If possible, permanently create temporary files and reuse them.
* Only create directories that are really needed. The fewer number of directories you 
        have to search, the faster your search will be.
* Defragment your partitions after installing new applications, deleting files or applying 
        maintenance and fixes. Any DOS defragmentation program that is aware of hidden 
        files can be used.


HPFS:

HPFS does away with some of the concerns that are prevalent with FAT. Files are 
allocated based on a 512byte granularity instead of a sector size, therefore 
fragmentation is greatly reduced. Also HPFS is especially efficient when handling 
large partition sizes, > 100 MB, and large numbers of files, > 500.  One thing you 
should look out for is to not allocate more than 5000 files in a sub-directory or 
directory. When you exceed 5000 files, you will start to degrade performance. The 
HPFS file system shipped with the Warp product has a cache limit of 2 MB. There is 
no such limit when using the HPFS386 file system that comes with the LAN Server 
products. 

HPFS does not have a separate line for the cache parameters. These are specified on 
the IFS statement in the CONFIG.SYS file. As with FAT, you should specify the 
caching threshold value. Use the /CRECL parameter to do this. Here you specify a 
number in terms of K bytes.  32K is usually a good starting value.

As mentioned earlier, the big drawback to HPFS is the amount of extra memory that it 
requires. Even if there is no HPFS partition on your system, it will cost between 200 
and 250K in working set memory, as well as the space for the HPFS cache.  If you are 
installing Warp on an existing DOS and or Windows system, you do not want to install 
HPFS. When your system is up and running, you can check the working set of your 
system. If there is enough free memory and you wish to create a HPFS partition, then 
you can use selective reinstall to install the HPFS support. Remember that any data 
stored in the HPFS partition can not be accessed if you boot your machine under DOS.

Another advantage of HPFS over FAT is in the area of extended attributes (EAs).  EAs 
are data attached to a file and used to provide information about the file it is attached 
to.  The name of an object that appears in an OS/2 folder or on the OS/2 Desktop is 
stored in EAs. In HPFS, EAs are part of the HPFS file control block which is read 
when the file is open. In FAT, EAs are stored in a separate file and require additional 
I/O to access them, and are therefore slower.


System Tuning:  

Before covering OS/2 system tuning let's  review the concept of threads and how they 
are used in OS/2. Every program that you run on an OS/2 system will process as one 
or more threads. A thread is the basic unit of work within OS/2. Each thread requires a 
minimum of 4K stack space. Stack space is used to save parameters and addresses 
when different functions are called from a thread. These functions could be to reading 
from or writing to a disk,  using semaphores, and other system and program functions. 
It is important to ensure that you allocate enough stack space for the thread to run. 
You can use programs such as EXEHDR.EXE to see and modify the stack space 
allocated for your program.  

All programs, DOS, Windows and OS/2 use a minimum of one thread. Each thread 
executes at a given priority.  The priority is used by OS/2 to determine which thread 
gets to run when more than one thread is ready to run. The highest-priority thread 
ready to run will be the one dispatched by the system and given time to run. It is given 
what is referred to a "time slice". This is a set period of time furing which a thread is 
allowed to run. After this time has expired, the highest-priority thread that is ready to 
run will be given a time slice in which to run. If the same thread still wanted to run, and 
it was the highest-priority thread, it would receive another time slice to run in.

OS/2 programs usually run at normal priority, which is 200. Under program control, the 
program can change its priority to be server class, 300, or time-critical, 800.  It can 
also change its subclass priority between 0 and 31. A thread that has priority 200 and 
a subclass of 15 has a higher effective priority than a thread with priority 200 and 
subclass 0, and therefore runs first. All DOS and Windows applications always run at 
priority 200.  In OS/2 Warp, we have added the capability to define the subclass 
priority for these applications.  Care should be taken when using this subclass priority 
since it may cause other programs to run slower or generate errors in the case of 
communication applications that do not get the subclass boost.

Warp will give OS/2 threads a priority boost for specific types of functions and states.  
Following are the priority boosts that are received, in descending order:  

Disk I/O: 
        When an interrupt is received stating that a disk operation has completed, the  
        thread that processes this state will receive a priority boost for one time slice to 
        process this interrupt. 

Starved:  
        In the CONFIG.SYS file, there is a statement MAXWAIT=3. The number 3    
        specifies how long a thread can be in the ready-to-run state without having     
        received time to run. If a thread had been waiting to run for 3 seconds, its    
        priority would be raised to the Starved priority level.  

Keyboard:
        This is a boost in priority given to a thread when it is interacting with the system 
        keyboard.  Basically, it is for accepting typed in data.  

Foreground:
        This is a priority boost given to all threads of the program that owns the active       
        window on the OS/2 screen, the one that is highlighted.

Windowed:
        Threads which have windows showing on the display will also receive a priority 
        boost when drawing or writing into that window.  

When a thread is in more than one of these states, the system will combine the states 
and give a priority based on the combined states.  

For DOS and Windows applications, these priority states do not apply. Instead, a 
second thread is used to handle the interrupt, and that thread is given an interrupt 
boost..  

Idle class is the other priority class that exists in OS/2. This priority level runs only 
when nothing else in the system wants to run. Threads in this class will not receive 
any of the state boosts. If DOS and/or Windows applications are being run, then you 
should avoid the use of threads that run in idle class because they will never run but 
will take up system space.

Now let's look at specific things in the CONFIG.SYS file that you can change to affect 
the performance of your system. First we cover those statements that you should NOT 
modify unless you have a system which has a special use, such as a process control 
system. An example would be a system used to monitor a manufacturing machine or 
chemical process, where timing and response time are critical factors.  

PRIORITY_DISK_IO=YES 
        This allows the application that has screen focus to receive a priority boost when 
        it's disk operation is complete. This applies to the first time slice given to the thread 
        after the disk operation is complete. After the time slice, the state is reset for the 
        thread and the priority boost removed.

MEMMAN=SWAP,PROTECT
        Allows OS/2 to swap code and data to disk when more memory is needed than is 
        physically available in your computer. If you do not specify SWAP, you will need 
        enough physical memory in you computer to hold all the code and data that OS/2 
        and your application needs to run. You do not pay a penalty by specifying       
        SWAP and then not needing to use it.  

        The PROTECT parameter allows Dynamic Link Libraries ( DLL) to allocate  
        protected memory. Protected memory is memory that is protected from being       
        accessed by unauthorized programs.  

        You can also specify a COMMIT parameter. This forces the system to ensure that 
        enough physical memory or swap file disk space is available for a memory object 
        when it is created. Normally, OS/2 commits physical and disk memory when the 
        page of memory is actually touched. Specifying this parameter can significantly 
        increase the amount space your swap file uses on disk.  

TIMESLICE=X,Y
        This statement is not found in the CONFIG.SYS file after you install OS/2 but is 
        sometimes recommended to be added. This was okay to add for OS/2 2.0, 2.1 or 
        2.11 systems, but not for OS/2 Warp. In Warp, we dynamically modify a threads 
        time slice based on actions that have occurred. For instance, if a thread took a 
        page fault during it's time slice, we give it an extra time slice to process what is 
        contained in the faulted page. We also give applications doing disk I/O extra time 
        slices if the data they are reading is in the disk cache. When the TIMESLICE=   
        parameter is used, none of these actions will occur. Instead, each thread will be 
        given the minimum time slice of X, and its time slice will not be allowed to go 
        beyond value Y. 

PRIORITY=DYNAMIC
        If DYNAMIC is not specified, then each thread will receive a minimum and        
        maximum time slice of 32 milliseconds with no additional time slices as described 
        in the TIMESLICE= statement description above.  

DEVICE=C:\OS2\BOOT\VDISK.SYS
        This statement allocates a virtual disk in your computers physical memory. It is 
        used for quick access to often-used files and programs. This was good for a DOS 
        environment where the extra memory in your computer was not used by DOS, but 
        OS/2 uses this memory, and your performance can be adversely affected if a      
        VDISK is used.  It is much better to increase the size of the disk cache if you have 
        unused physical memory than it is to use VDISK.  

Now let us look at statements in CONFIG.SYS which you should change to help 
improve the performance of your Warp system.  



LIBPATH= 
        This tells the system where to find DLL files and disk device drivers that Warp and 
        applications use. Place the directory names in order of usage. The most accessed 
        directory should be first, the least used last.  If possible, place the DLL used by a 
        program in the same directory as the working directory when the program is      
        running. Then, you do not need to add that directory to the LIBPATH statement.  
        Also, place all directories that are on a network at the end of your LIBPATH    
        statement in case the network goes down and they cannot be accessed.  See the 
        discussion of dynamic LIBPATH support later on in this paper for additional     
        considerations when accessing network drives.  

PATH=
        PATH is used to specify where Warp searches for program executable files, EXE, 
        COM, CMD, BAT, etc.  Place the directories in order of most used first, least used 
        last.  If programs will be executed from an object on your desktop or folder, specify 
        the path there and not in the PATH statement. Only place directories in the PATH 
        statement for executables that will be called from other programs or commands.  

DPATH= 
        The same principle applies to DPATH as PATH and LIBPATH.  For resources that 
        applications use, place the most used directories first and the least used last.  

BUFFERS=90
        Buffers are physical memory used to support partial sector reads and writes in a 
        FAT file system environment.  They are also used to cache FAT directory entries 
        and for swap file disk I/O.  Because BUFFERS are used to cache FAT directory 
        entries, this number should not be reduced below 60, unless you are not using the 
        FAT file system on your disks.  Reducing this number will increase the number of 
        disk reads that are done to the FAT directory entries and therefore slow down your 
        system.

MAXWAIT=3
        This specifies the maximum amount of time that a thread will be in a ready-to-run 
        state without receiving a time slice to run in.  After this time expires, the thread 
        will be given a boost in priority so it gets a chance to run.  Reducing this value to 2 
        may help in systems where there are a lot of programs running, or multiple      
        separate DOS/Windows programs running. Reducing it to 1 on systems where 
        there is swap activity taking place can slow down the system.  




DISKCACHE=D,LW,T,AC: 
        This is used to specify the amount of physical memory set aside to cache data that 
        is being read from or written to disk.  D represents a dynamic disk cache value that 
        varies in size from 48K to 14400K, based on the amount of physical memory you 
        have in your system.  If you have more than 8 MB in your system, D will be 10% of 
        your system's physical memory. The D should be changed to the actual amount of 
        disk cache space you require. If you have a system where your programs do not 
        do much disk I/O or where your memory is being used up by your applications, you 
        may want to set this value to 128.  Also, reduce this value if you are using the DB/2 
        product or any other product that provides its own disk data caching.  

        The T parameter is not defined in the default CONFIG.SYS file.  It defines the  
        cache threshold for records that go into the cache.  The default value is 4. This 
        means that any record that is 4 sectors or less will go into the cache, while those 
        greater will not. If your disk cache size is 128K or larger, add this parameter to the 
        disk cache statement.  If known, set this value to the largest record size used.        
        Otherwise, set the value to 32.   

        The LW parameter activates the Lazy Write or write behind feature. This allows the 
        application to get control back before the data is actually written to disk.  A 
        separate thread will write the data from the cache to the disk when necessary or 
        opportune to do so.  You should always use this option, and code your applications 
        to open files with a cache bypass option if disk data security is imperative.  

SWAPPATH=D,R,S
        SWAPPATH specifies where code and data pages are swapped to on disk when 
        more physical memory is needed than is available in your system.  D represents 
        the path where your SWAPPER.DAT file is located.  For systems which have        
        multiple partitions or multiple disks, this should be placed on the least used  
        directory of the least used disk.  Also, try to physically locate the swap file on the 
        disk based on its usage. If you are doing a lot of swap activity, place the swap file 
        at the start of the disk.  If is it rarely used, place it at the end.  

        S is the size that the swap file is initialized to when you start your Warp system.  
        Make this large enough so that it does not have to grow in size while you are   
        running your programs. You should perform your normal computer functions and 
        look at the size of the swap file when you have the most activity. Then set the 
        value of the S to this size in the CONFIG.SYS file.  If you are using the FAT file 
        system, IPL your system under DOS, delete the SWAPPER.DAT file, defragment 
        the disk partition where the swap file will be located, and then  IPL your OS/2 
        system. This should keep your swap file from getting fragmented.  

        R specifies the amount of free space that must be in the swap file.  The default for 
        this value is adequate and only needs to be changed if you want to be warned 
        earlier about a possible out-of-memory situation.  

THREADS=
        THREADS defines how many threads the system will be able to use.  One page of 
        resident memory is need for approximately every 32 threads that are defined.  As a 
        minimum, you will need 80 threads to support the base Warp system and 3 or 4 
        OS/2, DOS and or Windows applications.  The system will support up to 64000 
        threads, but typically you will not have enough memory in your system to support 
        more than 300 to 500 threads.  18 threads are required for LAN Server 4.0, and 12 
        for Personal Communications/3270.  You will need an additional 2 threads for each 
        Personal Communications/3270 session that is started.  

        To calculate the number of threads that you will need in your system, use the   
        formula 54+(2xN)+10 where N is the number of programs that you will run 
        together. If the program requires more than 2 threads, add in the additional    
        threads.  

Additional CONFIG.SYS Considerations

You should only install the devices drivers that your programs actually need to run.  
Do not install extra communication, printer, video or device drivers if they will not be 
used.  Below are a list of device drivers and virtual device drivers that are normally 
found in CONFIG.SYS and that may not be needed.  ( Virtual device drivers are used 
to support DOS and Windows applications and usually have a V at the beginning of 
their name.) 

VEMM.SYS Used to support Extended Memory use in DOS and Windows programs.  

VXMS.SYS Supports Extended Memory in DOS and Windows applications.  

VDPMI.SYS Supports the DPMI memory access and is required to support all        
        Windows applications.  

VW32S.SYS Supplies support for the WIN32S Windows APIs.  Not needed for 
         Windows programs that do not use WIN32S APIs.  

IBMxFLPY.ADD x will be either a 1 or a 2. 1 is used for family 1 machines and 2 is 
        for MCA machines.  You do not need both.  

XDFLOPPY.FLT This is required for reading diskettes which are written using  the 
        XDF ( Extended Disk Format ) format.  These are usually OS/2  and PCDOS 7 
        installation diskettes, printer and video driver diskettes and possibly CSD diskettes. 
        The Warp Install and Disk 1 diskettes do not use the XDF format.  

COM.SYS and VCOM.SYS are only required if you will be doing serial or async      
        communications.  

If you use the selectable CONFIG.SYS option in the Archive and Retrieve feature of 
Warp, it is possible to create multiple CONFIG.SYS files which will contain different 
device drivers based on your needs.  For example, you could create one 
CONFIG.SYS file that is used for maintenance and installation.  This one would 
include the XDFLOPPY.FLT and both IBMxFLPY.ADD drivers plus additional threads.  
Another CONFIG.SYS used for normal processing could have these device drivers 
removed and a lower number of threads.  When maintenance has to be applied to the 
system, or some additional new products installed, you could IPL the machine with the 
Archive and Retrieval menu active and select the proper CONFIG.SYS to be used.  
An extension of this would be to archive the CONFIG.SYS and the OS/2 INI files and 
select those to apply maintenance.  

System Settings  

Let's look at some of the System Settings and Desktop settings that can be tuned to 
improve a system's performance.  In the System Setup Folder there are many utilities 
that are available. 

Spooler: 
The drop-down menu provides an option to disable the spooler. This can be done 
without problems when only one job will be active on your printer at a time. This will 
save a little bit of memory and one process and thread in your system. If you have a 
dedicated print spool machine, then you should raise the priority of the spooler to it's 
highest point. For non-dedicated print spool systems, the priority should remain at the 
default. You would only increase this if (for example) you raised the subpriority of a 
DOS session and wanted to print documents while running the DOS session.  In this 
case, you would want to make the priority of the print spooler the same as the DOS 
session.  

Schemes and Color Pallet:
You should use solid colors and  avoid the use of bitmaps for desktop and folder 
backgrounds. These particular options use more memory and require more processing 
time to display them.  

Sounds:
Deselect the System Sounds options, unless you like the noises when opening and 
closing your folders. It costs between 250 and 300K in working set just to hear the 
noise.  An additional 40K or so of working set can be saved by executing 
DINSTSND.CMD in an OS/2 command session.  This will unhook the system sounds 
from the OS/2 desktop. To get them back, you would execute INSTSND.CMD.  

Font Palette: 
Only install the fonts that you will actually use in your system.  Also, try not to mix fonts 
in folders or on the OS/2 Desktop.  If you do, you will be using extra memory. Outline 
fonts tend to be a little smaller in terms of memory than bitmap fonts and once they 
are in the cache, they perform just as fast.  

WIN-OS/2: 
When defining a Windows program, select common sessions and make DDE and 
Clipboard support both private.  If floating-point is used in your Windows applications, 
use the enhanced run mode for Windows.  Also, if you have a Windows application 
that you always run, it  is better to start it via the Startup Folder than to use the Fast 
Load option and start it from the Desktop.  Finally, ensure that when you migrate, 
install or add Windows programs to you system, that the run mode for these is the 
same as the common session run mode.  If run modes are different, then you will have 
two separate Windows sessions running even though you stated that a common 
session is to be used.  

System Setup: 
Disabling the Animation and Print Screen option can save a little in code path and 
memory.  Setting the System Logo option to none can save some time when loading 
applications that check this parameter to see how long to display their applications 
logo.  The type-ahead option will use a little more memory.  When selecting screen 
resolutions, remember that the higher the resolution, the more memory that is used.  
Very high resolution and color support can require 100 to 200K of physical memory.  

Mouse 
Mouse pointers are basically bitmaps. The amount of memory used will be affected by 
which mouse pointer style you choose. If you activate the comet cursor, this will cost 
additional memory and processing time whenever the mouse is being used.  

Desktop Settings: 
Desktop settings are selected by choosing the Settings option on the Desktop menu.  
Choosing Automatic Lockup will cause extra code path and processing time to occur.  
Normally this is very minimal, until the timeout value expires.  Then you are looking at 
about 40 to 50K of working set.  

If you select Create Archive on system restarts, this will slow down your systems IPL 
time.  You want to set this option only when you have changed your desktop and/or 
configuration and want to save it.  Once it has been saved, turn this option off.  You 
can get to the Archive Retrieve menu screen when you IPL your machine by using the 
ALT+F1 key sequence.  


Conclusion

All the bells and whistles, neat features, applications and devices come at a cost. 
They all cost disk space, they all use memory, and they all have the potential for 
slowing your system down.  To minimize this, plan ahead.  Decide what the system 
will be used for and what your future uses will be. Then, set up the system 
accordingly. Install only the things that you are actually going to use and need. Ensure 
that there is a match between the software you install and the hardware you install it 
on. If an application or feature cost more memory than you have, either don't install the 
feature, or get more memory for your system. Finally be creative and logical. You can 
set the system up with different configurations and different support, defined to 
optimize performance based on the particular functions you perform and applications 
you use. Become aware of what Warp has to offer and use it to your advantage.
Appendix A:

The memory measurements results presented here are for planning purposes only. 
There is no guarantee, implied or otherwise, that you will reproduce these numbers 
exactly on any other system.  Measured results will change based on the hardware 
configuration of your computer, and what software is installed in the system. If the 
hardware or software configuration changes, the results will also change. 

All numbers are presented in megabytes of memory, and indicate all  the physical 
memory that is used to execute a given function. The numbers include both Warp 
system code and application code.

All measurements were made on a PS/2 A21, with 26MB of memory, VGA video, 
ESDI disk, mouse, keyboard and 16/4 Token Ring adapter.  HPFS and Multimedia 
support were not installed in the base system.  The CONFIG.SYS file was modified to 
be equivalent to how it would look on a 4 MB system. DISKCACHE=48, 
THREADS=96, and no IFS statement for HPFS.

Memory Requirements:

  Function                      OS/2 Warp               OS/2 Warp
                        For WIndows     With WIN-OS/2

Open System Folder           3.6 MB                    3.7 MB
Open Command Prompts         3.5               3.6
Start a DOS Session          4.5               4.6
Exit the DOS Session         4.3               4.3
Start a Windows Session      6.3               6.0
Exit the Windows Session     5.3               5.3
Open Productivity Folder     3.5               3.6
Start Enhanced Editor        4.5               4.6              


The numbers for DOS and Windows sessions are for full-screen sessions and 
therefore include the working set memory for switching back to the Warp Desktop to 
stop the measurement process.  Following are numbers for starting a DOS session in 
a window and the Windows PROGMAN support in a window, also referred to as a 
seamless session.  

  Function                      OS/2 Warp               OS/2 Warp
                        For WIndows     With WIN-OS/2

Open DOS Window Session              4.16 MB                  4.15 MB
DIR Command in DOS Window            3.00                     3.00 

Windows Session with Standard Run Mode and Public DDE and Clipboard Support

Start PROGMAN        6.17 MB                  5.84 MB
Open Folder Main     3.51                     3.50 

Windows Session with Enhanced Run Mode and Private DDE and Clipboard Support

Start PROGMAN        5.86 MB                  5.69 MB
Open Folder Main     3.39                     3.35

The above numbers show that how you set up your session can have a significant 
impact on the amount of memory used.


        

The next series of numbers shows how much memory is required when the particular 
support is is installed or activated on your system. These number are presented as 
Kilobytes ( KB ) in size.  For example, Save Desktop costs 300KB in working set 
memory. So, if the desktop was being saved while the System folder was being 
opened, 3.9 MB of memory would be required instead of 3.6. The numbers below are 
in addition to those above.

Support         Additional Working Set Memory

Multimedia
                Device Drivers           50 KB
                Desktop Folder and Objects      100 
                System Sounds           40 - 300   ( Inactive - Active )

Save Desktop                    300 

HPFS                    200 - 400  ( No HPFS Partition  
                                                  Defined, and 64 K cache )
XDF Support                      50 
Personnel Communications 3270
                Support not started     <20 
                Support active
                      Minimum           300  ( Single session and does not
                      Maximum           450     include connection protocol )
TCP/IP                  500  ( Base support )
        This is for the Device Drivers that are installed with the BonusPak.

Lan Requester 4.0               1 MB
                Device Driver and Setup 700 KB 
                Requester Active300 

                Default install for Token Ring including LAN Messaging support.
