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).

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. The launchApp service lets you launch Jalview with different memory settings (e.g. 500 Megabytes, 1 Gigabyte, 2 Gigabytes), or you can make your own jnlp file and add the following parameter into the <resources> element.

    <j2se version="1.6+" 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'.

    • Mac OSX

      First you need to locate the Jalview application icon. You'll then need to modify one of the Jalview application's resource files, by opening the 'Jalview.app' (which is the directory containing the Jalview application). You can open the directory by pressing Control+clicking the Jalview application icon, and then selecting the Show Package Contents entry in the menu that will pop up.

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

      <key>VMOptions</key>
      <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!