The best answers to the question “Increase heap size in Java” in the category Dev.

__QUESTION__:

I am working on a Windows 2003 server (64-bit) with 8 GB RAM. How can I increase the heap memory maximum? I am using the `-Xmx1500m`

flag to increase the heap size to 1500 Mb. Can I increase the heap memory to 75% of physical memory (6 GB Heap)?

__ANSWER__:

It is possible to increase heap size allocated by the JVM by using command line options

Here we have 3 options

```
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
-Xss<size> set java thread stack size
java -Xms16m -Xmx64m ClassName
```

In the above line we can set minimum heap to 16mb and maximum heap 64mb

__ANSWER__:

You can increase to `2GB`

on a `32`

bit system. If you’re on a 64 bit system you can go higher. No need to worry if you’ve chosen incorrectly, if you ask for 5g on a 32 bit system java will complain about an invalid value and quit.

As others have posted, use the cmd-line flags – e.g.

```
java -Xmx6g myprogram
```

You can get a full list (or a nearly full list, anyway) by typing java -X.

__ANSWER__:

You can increase the Heap Size by passing JVM parameters **-Xms** and **-Xmx** like below:

For Jar Files:

```
java -jar -Xms4096M -Xmx6144M jarFilePath.jar
```

For Java Files:

```
java -Xms4096M -Xmx6144M ClassName
```

The above parameters increase the **InitialHeapSize (-Xms)** to 4GB (4096 MB) and **MaxHeapSize(-Xmx)** to 6GB (6144 MB).

But, the **Young Generation** Heap Size will remain same and the additional HeapSize will be added to the **Old Generation** Heap Size. To **equalize the size of Young Gen Heap and Old Gen Heap**, use **-XX:NewRatio=1 -XX:-UseAdaptiveSizePolicy** params.

```
java -jar -Xms4096M -Xmx6144M -XX:NewRatio=1 -XX:-UseAdaptiveSizePolicy pathToJarFile.jar
```

**-XX:NewRatio = Old Gen Heap Size : Young Gen HeapSize** (You can play with this ratio to get your desired ratio).

__ANSWER__:

On a 32-bit JVM, the largest heap size you can theoretically set is 4gb. To use a larger heap size, you need to use a 64-bit JVM. Try the following:

java -Xmx6144M -d64

The -d64 flag is important as this tells the JVM to run in 64-bit mode.