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:
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.4+" 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.
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>
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!