jvm Setting the maximum heap size.


Example

Most JVMs have an option to set the maximum heap size e.g.

-Xmx64m
-Xmx8g

In Java 1.0 to 1.2 you could use

-mx64m

and this is still available on some JVMs for backward compatibility (E.g. Oracle JVM).

There are a few common misconceptions about this setting.

  • It doesn't set the heap size, only the maximum. -Xms sets the initial heap size.
  • It doesn't set the amount of memory the JVM will use. While the heap is an important area of memory, there are many other regions for code Perm Gen/Metaspace, thread stacks, GUI components, direct memory etc.

The amount of memory used at run time can change dynamically.