When launched as an Application, Jalview automatically tries to
maximise the amount of memory allocated to it (default settings are
to try and use up to 90% of physical memory available to it).
Sometimes it may require more memory, or if you are working in a
shared memory environment you may want to limit the maximum amount
of memory that it might use.
This has to be set at the time Jalview is launched because of the way
that Java runs on a computer - what is actually run is a program called
a Java virtual machine (a JVM) which executes the java program 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
Since Jalview 2.11, the program automatically configures the JVM memory settings to set the maximum memory available to Jalview to be 90% of physical memory.
This default setting can be altered in a number of different ways, depending on how you prefer to launch Jalview and how specific you want to be with the maximum memory setting.
The easiest way to launch Jalview with a different percentage of physical memory available is to create a text file with extension .jvl and with content that contains the line
jalview.jvmmempc=50Replace the value with the percentage of memory you wish to allocate to Jalview.
In Windows and in macOS you can then launch Jalview by double clicking on this file, and your memory setting will be used instead of the default value of 90.
In Linux or other unix variants you can launch Jalview on the command line and provide your JVL file as an argument with
/PATH_TO_JALVIEW/Jalview /path/to/file/mymemorysetting.jvl
If you want to use a memory setting like this and open a file you can use both the jvl and alignment files as command line arguments, but you must put the jvl file first, e.g.
/PATH_TO_JALVIEW/Jalview /path/to/file/mymemorysetting.jvl /path/to/alignments/myalignment.faalternatively, you can use the standard Jalview command line arguments with or without the jvl file (first), e.g.
/PATH_TO_JALVIEW/Jalview /path/to/file/mymemorysetting.jvl -open http://www.jalview.org/examples/jpred_msa.fasta -annotations http://www.jalview.org/examples/jpred_msa.seq.concise -colour Clustal
You can use command line arguments to control memory settings in Windows and macOS too:
In Windows you must use, e.g.
\PATH_TO_JALVIEW\Jalview.exe %HOMEPATH%\mymemorysetting.jvl -open %HOMEPATH%\myalignment.faand in macOS you can use the macOS open command like this:
open /Applications/Jalview.app --args ~/mymemorysetting.jvl -open ~/myalignment.fa(put all the Jalview arguments after the --args parameter).
Launching Jalview directly with a JVM is entirely possible, but is not recommended as automatic updates and some other default settings will not operate.
However by launching Jalview in this way you have full access to the Java command line arguments.
In particular you can set the maximum allowed memory with the -Xmx... JVM argument.
-Xmx should be immediately followed (no space or equals) by the maximum amount of memory that you might want to launch Jalview with. This can be specified in bytes as just a number,
or in kilobytes, megabytes or gigabytes by following the number with a "k", "m" or "g" respectively. e.g.
-Xmx8g
Jalview binaries for Windows and macOS are distributed with their own JVM which you will find in
You will also need to reference the "appdir" release folder with all of the Jalview jar files.
On Windows this will be
\PATH_TO_JALVIEW\releasewhereas on macOS it will be
/Applications/Jalview.app/Contents/Resources/app/releaseand on linux or unix
/PATH_TO_JALVIEW/release
Assuming the java (or java.exe on Windows) commands are available to you, you can run, e.g.
java -Xmx1500m -cp "/PATH_TO_RELEASE_DIR/*" jalview.bin.Jalviewor on Windows
java.exe -Xmx1500m -cp "\PATH_TO_RELEASE_DIR\*" jalview.bin.JalviewNote that the classpath argument wildcard must be simply a '*' and not '*.jar'. This is a limitation of Java.
You can also add other Jalview command line arguments as above after the jalview.bin.Jalview class name (you cannot use jvl files if launching Jalview in this way).