##
Memory Usage Settings for Jalview

Jalview sometimes runs out of memory. This is because of the way that Java runs on a computer - what is actually run is a program called a virtual machine (the JVM) which executes the java instructions. The JVM has limits on the memory that can be allocated to the java program - and you might need to increase them if you are working with particularly large datasets.
If Jalview has not explicitly told you that it has run out of memory, then a common sign is that a function that normally works seems to have no effect when working with a larger set of sequences (this might include open dialog boxes for saving PNG files, or when interpreting the result of a web service calculation).

Jalview Memory Usage Monitor: If you are concerned about memory, or think that things might be behaving strangely because of a shortage of memory, then you can check this by enabling the memory usage monitor. This is done by selecting the Tools→Show Memory Usage option. Once enabled, the memory usage monitor displays the currently available memory, the total memory, and the percentage free at the bottom left hand side of the Jalview Desktop window's background.

Increasing the memory available to Jalview
The way you increase the memory settings for the JVM depends on which installation of Jalview you use:

- Web Start Version

  JavaWS sets the JVM parameters through special tags in the JNLP file. You'll need to make your own jnlp file and add the following parameter into the <resources> element.

      <j2se version="1.5+" initial-heap-size="500M" max-heap-size="1000M"/>

  Save the jnlp file somewhere and then - if you start Jalview through your web browser, point your browser at the file's url, othewise simply run javaws with the file location as its argument. The file's url is something like :

      file://<full path to file>

  If jalview doesn't start up, see below. You'll have to edit the above settings in the JNLP file using a text editor, save it, and try starting Jalview with it once more.

- Install Anywhere version

  You need to change the InstallAnywhere configuration settings for the application. These are found in different places depending upon which operating system you have :

  - Unix/Windows

    Take a look inside the Jalview program installation directory (this might be in C:\Program Files\Jalview on windows). You should find a file called 'Jalview.lax' in it - make a backup, and then add the following lines to the end of the original file :

        lax.nl.java.option.java.heap.size.max=1000m
        lax.nl.java.option.java.heap.size.initial=500m

    Case and (lack of) spaces are important here! Do not add any spaces after the m in each line, and do not put any spaces before 'lax'.
    Also there MUST be a carriage return after the final line.

  - Mac OSX

    The lines you need to change are in the Info.plist file inside the Jalview.app/Contents directory (which is where the installAnywhere installation was made) :

        <key&ht;VMOptions</key&ht;
        <array>
        ! <string>-Xms2M</string>
        ! <string>-Xmx64M</string>
        </array>

    Exchange the above two string tags for :

        <string>-Xms500M</string>
        <string>-Xmx1000M</string>

- In all cases
  Save the file and try to start Jalview in the normal way. If it doesn't start, see below...

Jalview doesn't start... What do the memory settings mean ?

The 1000m value corresponds to the maximum number of megabytes of space that java objects can occupy. The 500m is the initial heap size that java will run in - increasing this can speed up memory allocation if you know you will need 500 meg of memory to begin with (ie it should speed up loading large alignments).

If, after setting the initial and maximum heap size to some large value, you cannot actually start Jalview, then the max and initial sizes are too big for your machine (there seems to be a physical limit related to physical RAM - email the usual address to enlighten us if you know better!). Our experiments found 1000m to be the biggest setting that could be used on a 1GB machine. Just try reducing the sizes until Jalview starts up properly!