|
|
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. 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.
Try these pre-prepared JNLPs : Jalview 500M Jalview 1G
- 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
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!
|