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:
JavaWS sets the JVM parameters through special tags in the JNLP
file. You can obtain a JNLP file with modified memory settings
from our service with the following link (replace 2G with
desired memory in G or M):
http://www.jalview.org/services/launchApp?jvm-max-heap=2G
Alternatively, if you want to create your own JNLP file then please download the latest JNLP file from http://www.jalview.org/webstart/jalview.jnlp and modify the max-heap-size parameter for the j2se tag in the <resources> element. e.g.
<j2se version="1.7+" initial-heap-size="500M" max-heap-size="1000M"/>In both cases, you should save your new jnlp file somewhere and then either point your web browser at the file's url, launch it from your file browser, or from a terminal window run javaws (located in your Java installation's bin directory) 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.
You need to change the InstallAnywhere configuration settings for the application. These are found in different places depending upon which operating system you have :
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=500mCase 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'.
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>
Please Note: We do modify the default memory settings in Jalview from time to time, so you may find different numbers to those shown in the examples above.
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!
We increased the default memory in Jalview 2.10.5 to 1G. To launch Jalview with the pre 2.10.5 default memory allocation, use the Jalview 256MB JNLP.