Memory Usage Settings for Jalview

When launched as an Application, Jalview will automatically configure the amount of memory allocated to the program to be 90% of physical memory, or 32GB - which ever is smaller.

This behaviour might not be ideal if you are working on a machine that runs other memory intensive processes, and (since Jalview 2.11.2) can be changed via the Startup Preferences panel.

Signs that Jalview is Running out of Memory
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 amount of memory allocated is defined wheb 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 it is often necessary to adjust them if you are working with particularly large datasets, or need to make room for other processes on the machine.

Jalview 2.11 includes a launcher that automatically configures the proportion of memory allocated to Jalview's JVM. By default it requests up to 90% of available memory whilst ensuring that at least 0.5G is available to the operating system and at least 0.5G is available to the Java runtime platform, or a specified 'maximum memory limit' - which ever is smaller. The amount of memory requested can be altered in a number of different ways: