[an error occurred while processing this directive]
> developer > web app development
Performance and the Java VM Memory Cache
by exteNd Composer Product Team, eBusiness Integration Products, Novell
Date Created: 2001-05-31 08:49:00.000
  Introduction
introduction

When working with large documents in a service it is wise to be aware of what the Java VM heap size is set to and make adjustments.  When the SilverStream app server starts within the Java VM, it uses a default memory heap size.  To see what the heap memory is set to on startup, start the app server using the following command:

SilverServer +verbose:vmopts

This will echo to the console the cache memory being set as well as other useful information such as the path settings and the jre_home directory.

Below is a sample of the output given:

 

In the example above the server is being started with the default cache memory values.  The default values are:  Xms=16m and Xmx=256m.

To change the values of the heap size for the SilverStream app server you need to start the server using commandline parameters.  The two commandline parameters you would want to change are Xms and Xmx.  

The Xms is the initial/minimum Java heap size within the VM.  Setting the initial heap size higher can help in a couple of ways.   First, it will allow garbage collection (GC) to work less which is more efficient.  The higher initial memory value will cause the size of the heap not to have to grow as fast as a lower initial heap size, thereby saving the overhead of the Java VM asking the OS for more memory.

The Xmx is the maximum Java heap size within the VM.  The VM will use aggressive garbage collection the closer you get to the maximum.  In addition if you need more than the memory you have set for the maximum the VM will run out of memory.  We advise aggressive maximum heap size of between 1/2 and 3/4 of physical memory.

Note: When determining the maximum heap size you want to set be sure to take into account other software running on the machine.

To change the Xms and Xmx memory for the SilverStream app server:

1.       Open a DOS command box.

2.       Change your directory to SilverStream\bin.

3.       Type SilverServer.exe +Xms size +Xmx sixe

a.       Size being the amount of memory you wish to set for the heap size.

Note: More detailed information about setting the app server commandline options can be found in the server documentation or at:  http://devcenter2/SilverHelp37/Docs/helpcore/books/admRun.html#999722

 Advanced memory information:  Advanced information about garbage collection can be found at:  http://java.sun.com/docs/hotspot/gc/